STACK
STACK atau TUMPUKAN adalah suatu struktur data yang seolah-olah terlihat seperti data yang tersusun secara ‘menumpuk’, dimana ada data yang terletak diatas data yang lainnya.
Bersifat LIFO (Last In First Out), berarti data yang masuk terakhir akan keluar pertama.
Operasi pada Stack :
Push = menambah data pada STACK pada tumpukan paling atas
Pop = mengambil data pada STACK pada tumpukan paling atas
contoh listing program C++ dengan menggunakan stack :
#include
#include
//deklarasi 'STACK' dengan struct dan array
struct STACK
{
int data[5];
int atas;
};
//deklarasi variabel 'tumpuk' dari struct
STACK tumpuk;
void main()
{ clrscr();
int pilihan,baru,i;
//inisialisasi awal
tumpuk.atas=-1;
do
{
clrscr();
cout<<"1. Push Data"<
cout<<"2.. POP data"<
cout<<"3. print data"<
cout<
cout<<"pilihan = "; cin>>pilihan;
clrscr;
#include
//deklarasi 'STACK' dengan struct dan array
struct STACK
{
int data[5];
int atas;
};
//deklarasi variabel 'tumpuk' dari struct
STACK tumpuk;
void main()
{
int pilihan,baru,i;
//inisialisasi awal
tumpuk.atas=-1;
do
{
clrscr();
cout<<"1. Push Data"<
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;
}
{
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<<"Tumpukan kosong";
getch();
}
else
{
cout<<"Data yang akan di-pop = "< tumpuk.atas--;
getch();
}
}
case 2:
{
if(tumpuk.atas==-1)
{
cout<<"Tumpukan kosong";
getch();
}
else
{
cout<<"Data yang akan di-pop = "<
getch();
}
break;
}
case 3:
{
if(tumpuk.atas==-1)
{
cout<<"Tumpukan kosong";
getch();
}
else
{
cout<<"Data = ";
for(i=0; i<=tumpuk.atas; i++)
{
cout< }
}
case 3:
{
if(tumpuk.atas==-1)
{
cout<<"Tumpukan kosong";
getch();
}
else
{
cout<<"Data = ";
for(i=0; i<=tumpuk.atas; i++)
{
cout<
getch();
}
break;
}
default:
{
cout<<"Tidak ada dalam pilihan"< }
}
}while(pilihan>=1 && pilihan<=3);
getch();
}
}
break;
}
default:
{
cout<<"Tidak ada dalam pilihan"<
}
}while(pilihan>=1 && pilihan<=3);
getch();
}
0 comments:
Posting Komentar