Stack
Stack adalah
suatu tumpukan. Konsep utama dari stack
adalah LIFO (Last In First Out), yaitubenda
yang terakhir masuk ke dalam stack
akan menjadi benda pertama yang dikeluarkan
dari tumpukan. Dalam C++ ada dua cara
penerapan stack.
Sesuai dengan
sifat stack, maka pengambilan/penghapusan elemen
dalam stack harus dimulai dari elemen
teratas. Deklarasi konstanta, tipe, dan
variable yang akan dipakai
dalam penjelasan operasi‐operasi stack dengan array adalah :
Const
Max = {jumlah tumpukan}
Type
TipeData = { };
Stack = array [1..Max] of TipeData;
Var
Top : TipeData;
Operasioperasi pada
Stack
Create : Membuat stack baru yang masih kosong
Procedure Create;
Begin
Top := 0;
End;
isFull : Fungsi untuk memeriksa apakah stack yang ada sudah penuh
Function Full : Boolean;
Begin
Full := False;
If top = max then Full := True;
End;
Push : Menambahkan sebuah elemen.elemen ke dalam stack, Tidak bisa dilakukan
lagi jika stack sudah penuh.
Procedure Push(elemen:TipeData);
Begin
If not Full then
Begin
Top := Top+1; { atau Inc(Top) }
Stack[Top] := elemen;
End;
End;
isEmpty : Fungsi untuk menentukan apakah stack kosong atau tidak.
Function Empty : Boolean;
Begin
Empty := False;
If Top = 0 then Empty := True;
End;
Pop : Mengambil elemen teratas dari stack, Stack tidak boleh kosong.
Procedure Pop(elemen:TipeData);
Begin
If not Empty then
Begin
Elemen := stack[Top];
Top := Top‐1; { atau Dec(Top) }
End;
End;
Clear : Mengosongkan stack ( Jika top = 0, maka stack dianggap kosong)
Procedure Clear;
Begin
Top := 0;
End;
Contoh Coding Stack
#include
<iostream.h>
#include
<conio.h>
#include
<stdio.h>
struct
STACK
{
int data[5];
int atas;
};
STACK
tumpuk;
void
main()
{
clrscr();
int pilihan,baru,i;
tumpuk.atas=-1;
do
{
clrscr();
cout<<"1.Push Data"<<endl;
cout<<"2.Pop Data"<<endl;
cout<<"3.Print Data"<<endl;
cout<<endl;
cout<<"Pilihan : ";
cin>>pilihan;
switch(pilihan)
{
case 1 :
{
if(tumpuk.atas==5-1)
{
cout<<"Tumpukan penuh";
getch();
}
else
{
cout<<"Data yang akan di Push :";
cin>>baru;
tumpuk.atas++;
tumpuk.data[tumpuk.atas]=baru;
}
break;
}
case 2 :
{
if(tumpuk.atas==-1)
{
cout<<"Tumpuk kosong";
getch();
}
else
{
cout<<"Data yang akan di Pop
="<<tumpuk.data[tumpuk.atas]<<endl;
tumpuk.atas--;
getch();
}
break;
}
case 3 :
{
if (tumpuk.atas==-1)
{
cout<<"Tumpukan kosong "<<endl;
getch;
}
else
{
cout<<"Data= " <<endl;
for(i=0;i<=tumpuk.atas;i++)
{
cout<<tumpuk.data[i]<<" ";
}
getch();
}
break;
}
default:
{
cout<<"Tidak ada dalam
pilihan"<<endl;
}
}
}
while(pilihan>=1 && pilihan<=3);
getch();
}
Hasil Output Stack
Terimakasih.Semoga Bermaanfaat
Daftar Pustaka
Konsep dan Implementasi Struktur Data dengan C++
Daftar Pustaka
Konsep dan Implementasi Struktur Data dengan C++
infonya sangat bermanfaat banget gan
ReplyDeleteisolasi double tape