Stack
merupakan bentuk khusus dari suatu struktur data, dimana node yang ditambahkan
ke dalam list dan diambil dari list hanya pada kepalanya atau dengan kata lain
prinsip pengolahannya dalah last-in first-out (LIFO). Dengan demikian, pada
struktur ini hanya ada dua fungsi utama yaitu push (memasukkan node ke dalam
stack), dan pop (mengambil node dari stack). Secara sederhana tumpukan bisa
diartikan sebagai kumpulan data yang seolah-olah diletakkan di atas data yang
lain. Kita Bisa menambah (menyisipkan) data dan mengambil (menghapus) data
melalui ujung yang sama yang disebut sebagai ujung atas tumpukan. Sebagai
contohnya misalkan kita mempunyai 2 buah kotak yang ditimpuk sehingga kotak yang
satu akan diatas kotak yang lainnya. Jika kemudian tumpukan 2 kotak tadi,
ditambah kotak ketiga, keempat, kelima dan seterusnya, maka akan diperoleh
sebuah tumpukan kotak yang terdiri dari N kotak.
Secara
sederhana sebuah tumpukan bisa diilustrasikan sebagai gambar berikut :
Dari
gambar diatas bisa di lihat bahwa kotak B terletak di atas kotak A dan di bawah
kotak C. Gambar diatas menunjukan bahwa dalam tumpukan dalam tumpukan hanya bisa
menambah atau mengambil sebuah kotak lewat satu ujung yaitu bagian atas. Bisa
dilihat juga yang menjadi ujung atas tumpukan adalah kotak F. Jadi jika ada
kotak lain yang akan di sisipkan, akan diletakkan di ats kotak F, dan jika ada
kotak yang akan diambil, maka kotak F yang akan pertama diambil.
Operasi
Pada Tumpukan.
Ada
2 operasi dasar yang bisa dilaksanakan pada sebuah tumpukan yaitu operasi
menyisipkan data (push) dan operasi menghapus data (pop).
Operasi
push
Perintah
push digunakan untuk memasukkan data ke dalam tumpukan. Conthnya misalkan kita
mempuyai data-data 3, 25, dan 9 dalam tumpukan dengan posisi 3 paling bawah dan
9 paling atas. Dan kita akan memasukkan data 34 ke dalam tumpukan tersebut.
Tentu saja data 34 akan diletakkan di atas data 9.
Operasi Pop
Operasi
Pop adalah operasi untuk menghapus elemen yang yang terletak pada posisi paling
atas dari sebuah tumpukan. Sama halnya dengan operasi push. Pertanyaanya sekarang
bagaimana kalau tumpukan itu kosong. Cara untuk melihat kosong tidaknya suatu
tumpukan adalah dengan membuat suatu fungsi yang menghasilkan suatu data yang
bertipe Boolean. Cara ini lebih disarankan karena dengan mengetahui nilai
fungsi tersebut kita bisa tahu kosong tidaknya suatu tumpukan.
Contoh
Implementasinya Kedalam Koding:
#include <iostream>
#include <conio.h>
#include <cstdlib>
using namespace std;
struct STACK
{
int data[5];
int atas;
};
STACK tumpuk;
int main()
{
system("cls");
int pilihan,baru,i;
tumpuk.atas=-1;
do
{
system("cls");
cout<<"1.Push Data"<<endl;
cout<<"2.Pop Data"<<endl;
cout<<"3.Print Data"<<endl;
cout<<"4.Keluar"<<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]<<" ";
}
case 4:
{
exit(1);
}
getch();
}
break;
}
default:
{
cout<<"Tidak ada dalam pilihan"<<endl;
}
}
}
while(pilihan>=1 && pilihan<=3);
getch();
return 0;
}
Jika
dicompile maka akan tampak seperti gambar berikut:
Sumber
: Konsep dan Implementasi Struktur Data dengan C++
Oleh
: Lamhot Sitorus dan David J.M. Sembiring
Penerbit
: Andi
0 komentar:
Posting Komentar