Rabu, 03 Juni 2009
STACK ( Tumpukan )
STACK ( Tumpukan )
- Adalah tumpulan data yang seolah-olah ada data di atas data lain.
- Suatu metode untuk Input dan hapus di dalam memori komputer.
Konsep utama dalam STACK adalah LIFO ( Last In First Out ).
Contoh:
5 Guntur
4 Aditya
3 Tyas
2 Hendra
1 Dyah
Data nomor 1 datang/masuk duluan, data nomor 5 yang paling atas yang keluar terlebih dahulu.
Algoritma:
1. Input/tambah data
• Jika ada input maka no stack/no tumpukan yang semula 0 akan tambah 1 demi 1 sampai maksimal tumpukan.
2. Pengambilan data
• Jika ada pengambilan data maka data dipindahkan di variabel lain contohnya temp. Dan posisi tumpukannya yang semula maksimal akan berkurang 1 demi 1 sampai posisi 0 kembali.
1. Deklarasi STACK
Type
Const
Max = 5;
Nama record = Record
Data : type data;
Top : byte;
End;
Nama_array = ARRAY [1..max] of Nama record;
Var
STACK : nama Array;
1 2 3 4
Nama Array----- Barang
Nama Record--- Coba
Nama Variabel-- Stack
Contoh Deklarasi dari gambar diatas:
Type
Coba = record
Data :string;
Top : byte;
End;
Barang = ARRAY [1..4] of coba;
Var
Stack:barang;
2. Operasi pada STACK
• CREATE
Membuat stack baru yang masih kosong.
Procedure create;
Begin
Stack.top:=0;
End;
• FULL
Untuk memeriksa apakah stack sudah penuh atau belum.
Fuction full:bolean;
Begin
Stack.top:=max;
End;
• PUSH
Menambah sebuah elemen ( data ) kedalam stack
Syarat: tidak bisa dilakukan jika stack sudah penuh.
Procedure push ( input:string );
Begin
If not full then
Begin
Stack.top:=stack.top;
Stack.data:=input;
End;
End;
• EMPTY
Fuction empty: bolean;
Begin
Empty:=false;
If top:=0 then empty:=true;
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar