Contoh Stack dan Queue

Rahayu Ananda

Stack dan queue adalah dua struktur data yang sering digunakan dalam pemrograman, terutama dalam pemrograman berorientasi objek. Stack dan queue keduanya adalah bentuk struktur data yang digunakan untuk menyimpan data dalam suatu program. Mereka berbeda satu sama lain terutama dari segi cara data disimpan dan diambil.

Apa itu Stack?

Stack adalah struktur data yang memungkinkan penyimpanan dan pengambilan data dalam urutan yang ketat. Dalam stack, data disimpan dalam urutan seperti tumpukan buku, di mana buku terakhir yang diletakkan di atas, adalah buku yang pertama kali diambil. Operasi yang dapat dilakukan pada stack adalah push (menambahkan data ke dalam stack) dan pop (mengambil data dari stack).

Contoh implementasi stack dalam bahasa pemrograman Java adalah sebagai berikut:

public class Stack {
   private int maxSize;
   private char[] stackArray;
   private int top;

   public Stack(int max) {
      maxSize = max;
      stackArray = new char[maxSize];
      top = -1;
   }

   public void push(char j) {
      stackArray[++top] = j;
   }

   public char pop() {
      return stackArray[top--];
   }

   public boolean isEmpty() {
      return (top == -1);
   }
}

Dalam contoh di atas, stackArray adalah array karakter yang merupakan stack sebenarnya, sedangkan top adalah indeks dari elemen pada bagian atas stack.

Apa itu Queue?

Queue adalah struktur data yang memungkinkan penyimpanan dan pengambilan data dalam urutan yang didefinisikan secara ketat. Dalam queue, data disimpan dalam urutan seperti antrean yang bergerak maju, di mana data yang pertama kali dimasukkan adalah yang pertama kali diambil. Operasi yang dapat dilakukan pada queue adalah enqueue (menambahkan data ke dalam queue) dan dequeue (mengambil data dari queue).

Contoh implementasi queue dalam bahasa pemrograman Java adalah sebagai berikut:

public class Queue {
   private int maxSize;
   private char[] queArray;
   private int front;
   private int rear;
   private int nItems;

   public Queue(int s) {
      maxSize = s;
      queArray = new char[maxSize];
      front = 0;
      rear = -1;
      nItems = 0;
   }

   public void enqueue(char j) {
      if(rear == maxSize-1)
         rear = -1;
      queArray[++rear] = j;
      nItems++;
   }

   public char dequeue() {
      char temp = queArray[front++];
      if(front == maxSize)
         front = 0;
      nItems--;
      return temp;
   }

   public boolean isEmpty() {
      return (nItems==0);
   }
}

Dalam contoh di atas, queArray adalah array karakter yang merupakan queue sebenarnya, sedangkan front dan rear adalah indeks elemen terdepan dan terbelakang dari queue.

Perbedaan antara Stack dan Queue

Perbedaan utama antara stack dan queue terletak pada cara data disimpan dan diambil dari struktur data tersebut. Pada stack, data disimpan dan diambil pada bagian atas, sedangkan pada queue, data disimpan dan diambil pada bagian depan dan belakang. Selain itu, operasi yang dapat dilakukan pada stack adalah push dan pop, sedangkan pada queue adalah enqueue dan dequeue.

Kesimpulan

Dalam pemrograman, stack dan queue adalah dua struktur data yang sangat sering digunakan. Keduanya dapat digunakan untuk menyimpan dan mengambil data dalam suatu program, namun dengan cara yang berbeda. Stack digunakan untuk menyimpan data dalam urutan yang ketat, sedangkan queue digunakan untuk menyimpan data dalam urutan yang didefinisikan secara ketat. Oleh karena itu, keputusan untuk menggunakan stack atau queue harus didasarkan pada kebutuhan program yang akan dibuat.

Also Read

Bagikan:

Tags