24 March, 2014

Stack and Implementation

Yak, karena hari ini ruangannya panassss sekale jadi efeknya bikin ngantuk dan ga focus pas di kelas… Jadi belajarnya pun ngebuttt dan ada yang masih kurang ngerti .__.

Stack      
Punya konsep LIFO (Last In First Out) dan FILO (First In Last Out) seperti tumpukan buku.

Queue    
Punya konsep FIFO (First In First Out) dan LILO (Last In Last Out) seperti antrian atm.

Di Queue, tempat data yang pertama dinamakan Front dan buat nentuin ada berapa isi datanya dengan Rear.
-    Kalo ada data masuk, Rear-nya mundur.

-    Kalo delete data, Front-nya lah yang mundur.






















Di Stack, yang dijadiin parameternya adalah Top.
-    Kalo ada data masuk, Top-nya bakal naik.
-    Kalo mau delete data, Top-nya turun.
-    Kalo Top uda ada di paling atas (jumlah array maksimalnya), maka uda ga bisa nambah lagi.
-    Kalo Top = NULL, berarti datanya kosong.
-    Kalo Top = Max-1, berarti uda di paling atas.





Operasi-operasi yang ada di Stack :
-    push(x)      -> meletakkan item x di Top-nya stack.
-    pop()          -> menghapus item yang ada di Top.
-    top()          -> ambil data yang ada di Top.



DFS (Depth First Search)  
Cara mencari data, dengan menelusuri seluruh anak-anak dari suatu node sebelum ke node yang selevel dengan node awalnya.





THANK YOU!!


Nama     : Krisna
NIM        : 1701290236

21 March, 2014

Introduction to Tree, Binary Tree and Expression Tree

Tree 
Kumpulan node.


   Level 1
  
  Level 2
  

  Level 3
  

  Level 4


-    Node paling atas (A) disebut Root.
-    Node paling bawah (H / I) disebut Leaf
-    H dan I disebut Sibling, karena punya Parent (D) yang sama.


Binary Tree 
Tree yang terrdiri dari Parent yang punya 2 Child.












Binary Search Tree 
Binary Tree yang Child-nya ada aturan.


*Nilai dari B harus lebih kecil dari Parentnya (A), sedangkan C harus lebih besar dari Parentnya.







Perfect Binary Tree 
Binary Tree yang di tiap level depth-nya sama, jumlah leafnya juga sama.





Complete Binary Tree 
Binary Tree yg sama seperti Perfect BT, tetapi ada sesuatu yang kurang. (ga persis la intinya)











Beberapa rumus buat nyari letak Child :
-    Index Left Child    -> 2p +1      //Child paling kiri.
-    Index Right Child  -> 2p +2      //Child paling kanan.
-    Index Parent         -> (p – 1)/2   //Parent-nya.


Infix 
Letak operator ada di tengah.

Contoh   : 3 / (a + b) – 2

Postfix 
Letak operator ada setelah angka-angkanya.

Contoh   : 3 a b + / 2 – (dari contoh di atas)

Prefix 
Letak operator ada sebelum angka-angkanya.

Contoh   : - / 3 + a b 2 (dari contoh di atas juga)

Cara ingetinnya :
-    Infix        -> LVR
-    Prefix        -> VLR
-    Postfix       -> LRV


  THANKYOUU!






Nama     : Krisna
NIM        : 1701290236

07 March, 2014

Linked List Implementation 1

Ada 3 macem Linked List:
1.  Single Linked List
Cuma punya 1 node.
    Contohnya:

1.  Double Linked List 
Cuma punya 2 nodes.
Contohnya:

1.  Multiple Linked List
Punya lebih dari 2 nodes.
Contohnya:




Node 
Panah yang menunjuk ke class lainnya.



Circular Linked List
Linked List yang menunjuk dirinya sendiri di akhirnya (head dan tail di memory yang sama).



Dalam sebuah memory ada 3 bagian, yaitu head, current dan tail.


*Deal with it K

Data yang masuk pertama kali akan langsung ditempatkan di Current.


Push Depan 
Salah satu teknik pemindahan memory, dan yang dipindahkan dari memory tersebut adalah bagian Head-nya.

Contoh Code-nya:

struct Mahasiswa{
                char nama[26];
                struct Mahasiswa *next;           // contoh structnya
}*head,*tail,*curr;

*curr = (struct Mahasiswa*) malloc (sizeof(struct Mahasiswa));
strcpy(curr->nama,”Kurisu”);
curr->next = head;                        
head = curr;



Push Belakang
Sama dengan Push depan, namun yang dipindahkan adalah bagian Tail-nya.

Contoh Code-nya (berdasarkan Struct di atas):

if(tail == NULL)
{
  head = tail = curr;
}else{
          tail->next = curr;         
          tail = curr;
       }
tail->next = NULL;


POP
Salah satu teknik menghapus isi dari suatu memory.

JIka hanya ada satu data saja, maka code-nya :
head = tail = NULL;
free(curr);




Ada 2 teknik dalam POP yaitu :

1.  POP Depan
Menghapus bagian headnya.

Contoh code-nya :
If(head == NULL)
{
  head = tail = NULL;
  free(curr);
}else{
          head = head->next;
          free(curr);
}

2.  POP Belakang 
Menghapus bagian tailnya.

Contoh code-nya :
If(tail == NULL)
{
  head = tail = NULL;
  free(curr);
}else{
          tail = tail->next;
          free(curr);
}



THANK YOU!!





Nama : Krisna
NIM    : 1701290236