Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain. Stack merupakan struktur data yang menggunakan LIFO (Last In First Out) yang memiliki arti "terakhir masuk sebagai yang pertama keluar".
Beberapa cara untuk menyajikan sebuah stack tergantung pada permasalahan yang akan diselesaikan. kita dapat menggunakan array untuk menyajikan sebuah stack, dengan anggapan bahwa banyaknya elemen maksimum dari stack tersebut tidak akan melebihi batas maksimum banyaknya elemen dalam array. Dan juga kita dapat menggunakan tipe data struktur (struct) yang terdiri dari dua field. Field pertama bertipe array untuk menyimpan elemen stack , medan kedua bertipe integer untuk mencatat posisi ujung stack.
3. operasi pada stack
operasi-oerasi dasar pada stack adalah sebagai berikut:
a. Push : digunakan untuk menambahkan item pada stack yang paling atas
b. Pop : diambil untuk mengambi item pada tumpukan paling atas
c. Clear : digunakan untuk mengosongkan stack
d. IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
e. IsFull : fungsi yang digunakan apakah stack yang digunakan sudah penuh
contoh program
#include<iostream.h>
#include<conio.h>
#define max 10
struct Tumpukan{
int atas;
int data[max];
}T;
void awal(){
T.atas=-1;
}
int IsEmpty(){
if(T.atas==-1)
return 1;
else
return 0;
}
int IsFull(){
if(T.atas==max-1)
return 1;
else
return 0;
}
void Push(int data){
if(IsEmpty()==1)
{T.atas++;
T.data[T.atas]=data;
cout<<"Data"<<T.data[T.atas]<<"masuk ke stack";}
else if(IsFull()==0)
{T.atas++;
T.data[T.atas]=data;
cout<<"Data"<<T.data[T.atas]<<"masuk ke stack";}
else
cout<<"Tumpukan penuh";
}
void Pop(){
if(IsEmpty()==0){
cout<<"Data teratas sudah terambil";
T.atas--;
}
else
cout<<"Data Kosong";
}
void Print(){
if(IsEmpty()==0)
{for(int i=T.atas;i>=0;i--)
{cout<<"\nTumpukan ke "<<i<<"="<<T.data[i];}
}
else
cout<<"Tumpukan kosong";
}
void Clear(){
T.atas==-1;
cout<<"Tumpukan kosong!";
}
void main(){
int pil,data;
awal();
do
{
clrscr();
cout<<"1. Push\n2. Pop\n3. Print\n4. Clear\n5. Exit\n Masukkan pilihan:";
cin>>pil;
switch(pil)
{case 1:cout<<"Masukkan data = ";cin>>data;
Push(data);
break;
case 2:Pop();
break;
case 3:Print();
break;
case 4:Clear();
break;
case 5:cout<<"Terimakasih, tekan enter untuk keluar";
}
getch(); }
while(pil=5);}
output
Tidak ada komentar:
Posting Komentar