Stack merupakan jenis linked list yang menerapkan konsep LIFO (Last In Fist Out) artinya elemen dari struktur (node) yang dimasukkan pertama kali ke dalam rangkaian akan dikeluarkan (diproses) terakhir kali sedangkan elemen yang masuk terakhir akan diproses / dikeluarkan pertama. Dengan kata lain setiap transaksi atau aktifitas yang ada dalam stack dilakukan pada kepalanya (head) saja. Pada stack hanya ada 2 fungsi utama yaitu Push atau menambah/memasukkan struktur (node) ke dalam stack, dan Pop atau mengeluarkan/menghapus node dari stack.
Cara kerja stack dapat di
ilustrasikan sebagai berikut:
| W | ---> atas
| X |
| Y |
| Z | ---> bawah
Anggaplah ilustrasi diatas sebagai
tumpukan data, W sebagai node (struktur) yang atas (terakhir dimasukkan) dan Z sebagai node yang bawah (pertama kali dimasukkan). Jika kita melakukan operasi
Push (menambah), misalnya V, maka penambahan akan dilakukan pada nilai yang
paling atas, yaitu W, sehingga menjadi:
| V | ---> atas
| W |
| X |
| Y |
| Z | ---> bawah
Contoh Source Code dari Stack adalah :
#include <iostream>
#include <conio.h>
#define SIZE 10
using namespace std;
int Stack[SIZE];
int top = -1;
bool isFull(){
if(top==SIZE-1){
cout<<endl<<"Stack sudah penuh!"<<endl;
getch();
exit(0);
return true;
}else
return false;
}
bool isEmpty(){
if(top==-1){
cout<<endl<<"Stack kosong!"<<endl;
getch();
exit(0);
return true;
}else
return false;
}
void push(int value){
if(isFull()){
}else
top++;
Stack[top]=value;
}
void printStack(){
if(isEmpty()){
}else if (isFull()){
}else
for(int i=top;i>=0;i--){
cout<<Stack[i]<<endl;
}
}
void pop(){
if(isEmpty()){
}else
cout<<endl<<"Stack diambil : "<<Stack[top]<<endl;
top--;
printStack();
}
int main(){
int choice, data=1;
do{
cout<<"Input Data : ";
cin>>choice;
switch (choice){
case 999:
cout<<"Proses Selesai!";
data = 0;
break;
case 60 ... 998:
push(choice);
break;
case 0 ... 59:
pop();
break;
}
}while(data == 1);
getch();
return 0;
}
Source code diatas merupakan implementasi dari sebuah soal pada gambar di bawah ini:
Ini adalah Implementasi Programnya :
No comments:
Post a Comment