Dalam ilmu komputer, stack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhr kali dimasukkan akan pertama kali keluar dari stack tersebut. Stack dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix).
Ciri Stack :
- Elemen TOP (puncak) diketahui
- penisipan dan penghapusan elemen selalu dilakukan di TOP
- LIFO Pemanfaatan Stack :
- Perhitungan ekspresi aritmatika (posfix)
- algoritma backtraking (runut balik)
- algoritma rekursif
Operasi Stack yang biasanya :
- Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke stack
- Pop (input/output data : stack, output E : typeelmt ) : menghapus sebuah elemen stack
- IsEmpty ()
- IsFull ()
- dan beberapas selektor yang lain
source code Stack C++
#include <iostream.h>
#include <conio.h>
//deklarasi 'STACK' dengan sturck dan array
struct STACK
{
int data[5];
int atas;
};
//deklarasi variable 'tumpuk' dari
STACK tumpuk;
void main()
{
clrscr();
int pilihan,baru,i;
//inisialisasi awal
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;
clrscr();
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<<"Tumpukan kosong";
getch();
}
else
{
cout<<"Data yang akan di-pop ="<<tumpuk.data[tumpuk.atas];
tumpuk.atas--;
getch();
}
break;
}case 3:
{
if(tumpuk.atas==-1)
{
cout<<"Tumpukan kosong";
getch();
}
else
{
cout<<"Data =";
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();
}
Semoga artikel ini bermanfaat. . . . :)
0 komentar:
Posting Komentar