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:
Posting Komentar