Sabtu, 21 Juli 2012

Stack


Stack sendiri merupakan sebuah konsep untuk menyimpan dan mengambil dengan algoritma LIFO (“Last In First Out”) dimana data yang masuk duluan yang akan dikeluarkan terlebih dahulu, contoh realnya ketika kita memasukkan bola ke dalam suatu tabung, maka bola yang dimasukkan pertama kali akan diambil terakhir kali,, nah seperti itulah kira2 konsep stack.

  • Operasi-operasi yang ada di stack yaitu antara lain:


  1. IsFull : mengecek apakah STACK sudah penuh
  2. IsEmpty : mengecek apakah STACK sudah kosong
  3. Push :menambah data pada STACK pada tumpukan paling atas
  4. Pop :mengambil data pada STACK pada tumpukan paling atas
  5. Print :mencetak semua data dalam tumpukan
Contoh Program Stack :
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
//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"<<endl;
22
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<<"Tumpukan 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]<<" ";
23
}
getch();
}
break;
}
default:
{
cout<<" Tidak ada dalam pilihan "<<endl;
}
}
}
while( pilihan >=1 && pilihan <= 3 );
getch();}

Tidak ada komentar:

Posting Komentar