Stack and Queue


1.     Stack
Stack, yang berarti tumpukan, merupakan kumpulan elemen-elemen data yang disimpan dalam satu lajur linear. Kumpulan elemen-elemen data hanya boleh diakses pada satu lokasi saja yaitu posisi atas tumpukan (TOP). Tumpukan digunakan dalam parsing, evaluation, dan backtrack. Elemen-elemen di dalam tumpukan dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur. Konsep utama yang digunakan stack yaitu LIFO (Last In First Out).

Array Representation
·       Stack memiliki dua variabel:
1)    TOP yang digunakan untuk menyimpan alamat elemen paling atas dari tumpukan
2)    MAX yang digunakan untuk menyimpan jumlah maksimum elemen yang dapat ditumpuk oleh stack
·       Jika TOP = NULL, maka menunjukkan bahwa tumpukan kosong
·       Jika TOP = MAX - 1, maka tumpukan penuh
·       TOP = 4, penyisipan dan penghapusan akan dilakukan pada posisi ini

Stack Operations
Operasi yang sering diterapkan pada struktur data stack (tumpukan) adalah Push dan Pop. Operasi yang dapat diterapkan yaitu sebagai berikut.
1.     Push : digunakan untuk menembah item pada stack pada tumpukan paling atas.
2.     Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas.
3.     Clear : digunakan untuk mengosongkan stack.
4.     Create Stack : membuat tumpukan baru S, dengan jumlah elemen kosong.
5.     MakeNull : mengosongkan tumpukan S, jika ada elemen maka semua elemen dihapus.
6.     IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong.
7.     Isfull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh.

2.   Queue
Queue, yang berarti antrian, memiliki konsep yang hamper sama dengan stack. Perbedaan dari keduanya yaitu operasi penambahan dan penghapusan pada ujung yang berbeda. Penghapusan dilakukan pada bagian depan (front) dan penambahan berlaku pada bagian belakang (rear). Elemen di dalam antrian dapat bertipe integer, real, record dalam bentuk sederhana atau struct. Sistem pengaksesan pada Queue yaitu menggunakan system FIFO (First In First Out), artinya elemen yang pertama masuk itu yang akan pertama dikeluarkan dari Queue.

Array Representation
Sama halnya seperti stack, queue pada array juga memiliki 2 variabel, yaitu variabel FRONT dan REAR yang menunjuk ke posisi dimana insert dan delete dapat dilakukan masing-masing. Front adalah variabel yang menunjuk posisi pertama dalam antrian, dan rear adalah variabel yang menunjuk posisi terakhir dalam antrian. Berikut merupakan gambarannya.


Linked List Representation
Linked list pada queue juga sama seperti pada stack, elemennya pun disebut node dan memiliki bagian yang sama. Hanya saja pointer START pada queue digunakan sebagai FRONT. Proses penambahan node dilakukan pada bagian Rear dan penghapusan node dilakukan pada bagian Front. Jika FRONT = REAR = NULL, maka Queue dinyatakan kosong, atau belum memiliki node. Berikut merupakan gambarannya.


Queue Operations
Operasi yang digunakan dalam queue adalah sebagai berikut.
1.     Push :  Menambah item pada bagian belakang/rear suatu queue.
2.     Pop  : Menghapus item pada bagian depan/front suatu queue.
3.     Front : Mengembalikan item yang paling depan dalam suatu queue. Front dikenal juga sebagai Peek.





Sumber :

Comments

Popular posts from this blog

Binary Search Tree (BST)

Rangkuman Data Structure