Pertemuan 3

Stack
Stack adalah salah satu data struktur yang menggunakan konsep LIFO (Last In First Out). Dimana data paling terakhir yang ditambahkan akan diambil terlebih dahulu.
Stack mempunyai 2 variables, yaitu top dan max, dimana top adalah element paling atas dan max adalah jumlah element yang dapat ditampung
Stack memiliki beberapa method yaitu :

  1. push(x) : menambahkan item x kedalam stack
  2. pop() : menghapus data yang paling terakhir ditambahkan
  3. top() : mengakses data yang paling terakhir ditambahkan

Terdapat 3 notasi yang diketahui :

  1. Prefix (Reverse Polish Notation)
    Operator yang ditulis sebelum operans
    Contoh : ++x
  2. Infix
    Operator yang ditulis diantara kedua operans
    Contoh : x + y
  3. Postfix (Polish Notation)
    Operator yang ditulis sesudah operans
    Contoh : x++

Langkah-langkah konversi Infix ke Postfix :

  1. Cari operator dengan presendensi tertinggi
  2. Letakkan operator tersebut ke belakang operan
  3. Ulangi hingga selesai

Depth First Search (DFS)
DFS adalah suatu algoritma untuk mencari atau menelusuri suatu pohon. Pencarian atau penelusuran akan dimulai dari anak pohon paling terakhir atau element terdalam dalam suatu pohon.

Contoh penggunakan DFS yaitu :

  • Mencari komponen yang terhubung
  • Mengurutkan topologi

DFS dapat diimplementasikan dengan fungsi rekursif atau prosedur iteratif menggunakan stack.

Algoritma DFS (Pseudo-code) :
create empty stack
push root into stack
mark root
While stack is not empty
Pop an item from stack into P
For each node X adjacent with P
If X is not marked
Mark X
Push X into stack

Queue
Queue adalah salah satu stuktur data yang menggunakan konsep FIFO (First In First Out). Yang maksudnya adalah data yang paling pertama masuk adalah data yang paling pertama diambil. Contoh dari queue adalah seperti sebuah antrian saat orang ingin membayar belanjaan.

Queue dapat diimplementasikan menggunakan array atau linked list

Queue mempunyai 2 variable, yaitu rear dan front. Dimana front adalah element pertama dari sebuah queue dan rear adalah element terakhir dari queue.

Queue yang diimplementasikan menggunakan linked list :
– Root atau data pertama disebut FRONT
– Pointer dari suatu node yang digunakan untuk menunjuk data selanjutnya disebut REAR
– Menggunakan push tail
– Jika FRONT = REAR = NULL , Maka queue kosong

Operasi Queue :

  1. push(x) : Menambahkan item x ke belakang queue
  2. pop() : menghapus item paling depan dari suatu queue
  3. front() : mengakses item palign depan dari suatu queue

Circular Queue, adalah suatu data struktur yang mirip dengan queue. Perbedaannya terletak pada data terkahir yang terhubung ke data awal sedangkan queue biasa tidak terhubung

Deques
Deques, adalah suatu list yang dimana element didalamnya dapat disisipkan atau dihapus di kedua ujungnya

Priority Queue
Priority queue adalah suatu struktur data yang mirip dengan queue. Namun terdapat suatu perbedaan dimana saat kita akan menambahkan data dan menghapus, data akan dipilih berdasarkan prioritas yang kondisinya telah ditetapkan terpenuhi.

Breadth First Search (BFS)
Breadth First Search, adalah suatu algoritma yang digunakan untuk mencari atau menelusuri suatu tree berdasarkan level-level treenya.

Contoh penggunaaan BFS :

  • Mencari jarak terpendek dari unweight graph
  • Mencari komponen yang terhubung di dalam suatu graph

Perbedaan dari BFS dan DFS ialah
DFS menggunakan stack sedangkan BFS menggunakan queue

Algoritma BFS (Pseudo-code) :
Prepare an empty queue
Push root into queue
Mark root
While queue is not empty
Pop and item from queue into P
For each node X adjacent with P
If X is not marked
Mark X
Push X into queue

 

 

 

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *