Kamis, 30 Januari 2014

Stack

Tumpukan (stack) adalah kumpulan data. Untuk menyajikan sebuah stack, kita dapat menggunakan larik (array). Stack juga dapat disajikan dengan menggunakan tipe data terstruktur lain, seperti record yang terdiri dari dua medan. Medan pertama bertipe larik untuk menyimpan elemen stack, medan kedua bertipe integer untuk mencatat posisi ujung atas stack. Maka, kita dapat mendeklarasikan stack.
type
stack:=record
top:0..100;
tabelemen:array[1.100]of char;
end;
var

s:stack;
huruf:char;
kalimat, kalimatBalik, temp Kalimat :string;
kataBalik :array[1..100] of string
i, arCount j:integer;
 
elemen stack tidak harus berupa integer, tetapi bisa juga menggunakan tipe data yang lain seperti char atau real. Tapi, tipe data dari medan atas (top) harus bilangan bulat antara 0 sampai MaxElemen, karena nilainya menunjukkan banyaknya elemen yang ada di dalam suatu stack, sekaligus menunjukkan posisi elemen teratas dalam stack yang dimaksud.
Ada dua operasi dasar yang bisa dilaksanakan pada stack, yaitu menyisipkan data (push) dan menghapus data (pop).  
Operasi pop adalah operasi untuk menghapus elemen yang terletak pada posisi paling atas dari sebuah stack. Contohnya seperti di bawah ini :
procedure pop(var s:stack; var x:char);
begin
x := s.tabelemen[s.top];
s.top := s.top-1;
end;

Implementasi stack :
·         Inisialisasi, adalah proses untuk membuat stack dalam keadaan kosong.
·         Empty/kosong adalah operasi untuk mengetahui status stack, yaitu kosong atau tidak.
·         Full/penuh, adalah operasi untuk mengetahui status stack, yaitu penuh atau tidak.
·         Pop, dengan mempertimbangkan seleksi awal terhadap kondisi stack yaitu hanya berlaku untuk stack yang tidak kosong
·         Push, dengan mempertimbangkan seleksi awal terhadap kondisi stack yaitu untuk menghindari overflow.


Tidak ada komentar:

Domo-kun Staring