Stack dan Queue
A. Stack
Stack adalah struktur data yang mengikuti prinsip LIFO (Last In First Out), yang berarti elemen yang dimasukkan terakhir akan dikeluarkan terlebih dahulu. Ilustrasinya dapat dilihat sebagai berikut :

Gambar Prinsip LIFO (Last In First Out)
Berikut adalah contoh program stack :
return Tumpukan.top == -1; |
return Tumpukan.top == MAX - 1; |
cout << "\nTumpukan penuh" << endl; |
cout << "\nMasukkan data = " ; |
cin >> Tumpukan.data[Tumpukan.top]; |
cout << "Data " << Tumpukan.data[Tumpukan.top] << " masuk ke stack" |
cout << "\nData kosong\n" << endl; |
cout << "\nData " << Tumpukan.data[Tumpukan.top] << " sudah terambil" |
cout << "Tumpukan kosong" ; |
for ( int i = Tumpukan.top; i >= 0; i--) |
cout << Tumpukan.data[i] << ((i == 0) ? "" : "," ); |
cout << "\n1. Input (Push)\n" |
cout << "Pilihan tidak tersedia" << endl; |
Outputnya :

Gambar Hasil Program Stack
B. Queue
Queue adalah struktur data yang mengikuti prinsip FIFO (First In First Out), yang berarti elemen yang dimasukkan pertama akan dikeluarkan terlebih dahulu. Ilustrasinya dapat dilihat sebagai berikut :

Gambar Prinsip FIFO (First In First Out)
Berikut adalah contoh program queue:
#define MAX 20 //maksimum data queue |
int front, rear, data[MAX]; |
cout << "Antrian kosong" <<endl; |
for ( int i = Q.front; i < Q.rear; i++) |
cout << Q.data[i] << ((Q.rear-1 == i) ? "" : "," ); |
cout << "Antrian penuh!" <<endl; |
cout << "Masukkan Data : " ;cin >> data; |
cout << "Data ditambahkan\n" ; |
cout << "Antrian masih kosong" <<endl; |
cout << "Mengambil data \"" << Q.data[Q.front] << "\"..." << endl; |
for ( int i = Q.front; i < Q.rear; i++) |
Q.data[i] = Q.data[i + 1]; |
cout << "-------------------\n" |
<< "-------------------\n" |
<< "-------------------\n" |
<< "Masukkan pilihan : " ; cin >> choose; |
cout << "Pilihan tidak tersedia" ; |
Output :


Gambar Hasil Queue
0 Response to "Stack dan Queue"
Post a Comment