Stack/Tumpukan
Euis Marlina, S.Kom Email :
[email protected] http://euismarlina.edublogs.org HP : 08179424319
Mata Kuliah Struktur Data - 2008
Pengantar
Stack adalah suatu tumpukan dari benda Bersifat LIFO (Last In First Out) yaitu Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack Contohnya, karena kita menumpuk Printer di posisi terakhir, maka Printer akan menjadi elemen teratas dalam tumpukan. Sebaliknya, karena kita menumpuk Monitor pada saat pertama kali, maka elemen Monitor menjadi elemen terbawah dari tumpukan. Dan jika kita mengambil elemen dari tumpukan, maka secara otomatis akan terambil elemen teratas, yaitu Printer juga. Penerapan Stack bisa menggunakan Array atau Linked list. Mata Kuliah Struktur Data - 2008
Operasi Stack
Push : untuk menambah item pada tumpukan paling atas Pop : untuk mengambil item pada tumpukan paling atas Clear : untuk mengosongkan stack IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh Retreive : untuk mendapatkan nilai dari item teratas. Mata Kuliah Struktur Data - 2008
Stack dengan Array #include
#include #include<stdlib.h> #include<stdio.h> #define MAX 10 //ukuran maksimum dari stack void push(int stack[], int *top, int value); void pop(int stack[], int *top, int *value); int main() { int stack[MAX]; int top = -1; int n, value; Mata Kuliah Struktur Data - 2008
do { do { : ";
cout<<"Masukkan Nilai yang akan di Push cin>>value; push(stack,&top,value);
cout<<"Tekan 1 untuk Melanjutkan"<<endl; cin>>n; } while (n == 1); cout<<"Tekan 1 untuk Melakukan Pop"<<endl; cin>>n; Mata Kuliah Struktur Data - 2008
while(n == 1) { pop(stack,&top,&value); cout<<"Nilai yang di Pop :"<>n; } cout<<endl; cout<<"Tekan 1 untuk Melanjutkan"<<endl; cin>>n; } while (n == 1);
getch(); return 0; } Mata Kuliah Struktur Data - 2008
void push(int stack[], int *top, int value) {
if(*top < MAX) { *top = *top + 1; stack[*top] = value; } else { cout<<"Stack Penuh, Push Nilai Tidak Dapat Dilakukan"<<endl; exit(0); } } Mata Kuliah Struktur Data - 2008
void pop(int stack[], int *top, int *value) { if(*top < MAX) { *value = stack[*top]; *top = *top -1; } else { cout<<"Stack Penuh, Pop Nilai Tidak Dapat Dilakukan"<<endl; exit(0); } } Mata Kuliah Struktur Data - 2008