Bila dalam artikel sebelumnya telah di bahas tentang Queue pada artikel Contoh Program Queue dengan Struct, maka bagian terpenting lain dari struktur data adalah Stack atau tumpukan data. Pengertian stack sendiri adalah tumpukan beberapa data yang mana ada data yang berada di atas data yang lain. Mungkin dapat diibaratkan sebagai menumpuk batu bata, cara pengambilan datanya pun berbeda dengan queue. Karena stack berupa tumpukan data maka data yang pertama keluar adalah data yang terakhir masuk atau yang sering disebut sebagai LIFO (Last IN First OUT).
Semisal kita memiliki bilangan dalam stack seperti berikut :
|| 12 ||
|| 17 ||
|| 27 ||
|| 10 ||
|| 56 ||
========
berikut gambarannya dengan program :
maka data yang pertama keluar adalah angka 12 karena merupakan data terakhir, bila diterapkan dalam program akan seperti berikut :
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int top=1, data[100];
void pushdata(){
cout<<"Masukkan data : ";cin>>data[top];
}
void popdata(){
top-=1;
cout<<"Data telah dihapus!"<<endl;
}
void viewdata(){
cout<<endl;
for(int i=top-1;i>=1;i--){
cout<<"||"<<data[i]<<"||"<<endl;
}cout<<"====="<<endl;
}
void main(){
char ul; int pil;
do{
clrscr();
cout<<"\n1. Push Data\n2. Pop Data\n3. View Data\n";
cout<<"Pilih = ";cin>>pil;
switch(pil){
case 1:{ pushdata(); top++; } break;
case 2:{ if(top<=1){cout<<"Data Kosong!"<<endl; }else{ popdata(); }
}break;
case 3:{ if(top<=1){cout<<"Data Kosong!"<<endl; }else{ viewdata();}
}break;
default : cout<<"Pilihan tidak ada!"<<endl; break;
}
cout<<"Ingin mengulang : "; cin>>ul;
}while(ul=='y'||ul=='Y');
Tidak ada komentar:
Posting Komentar