Senin, 25 Mei 2009

modul 5;

MODUL 5

STACK ( Tumpukan )

Konsep utama dalam STACK adalah LIFO ( Last In First Out )

















Algoritma:
  1. Input/tambah data

  1. Pengambilan data

  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;

  1. 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;

End;

· POP

Mengambil elemen teratas dari stack.

Syarat: Stack tidak boleh kosong.

Procedure Pop ( elemen:string );

Begin

If not empty then

Begin

Elemen:=stack.data;

Stack.top:=top – 1;

End;

End;

Contoh:

1 2 3 4

Uses wincrt;

Type

kelas = ARRAY[1..4] of string;

Var

Stack: kelas;

top:byte;

Elemen: string;

I : integer;

Begin

top:=0;

For i:=1 to 4 do

Begin

Writeln('masukkan nama ke', ' ',i,' ','='); readln(stack[i]);

top:=top+1;

End;

writeln('posisi tumpukan=',top);

Writeln('pengambilan data');

For i:=1 to 4 do

Begin

Elemen:=stack[i];

top:=top - 1;

End;

writeln;

Writeln('data elemen sekarang=',elemen);

writeln('posisi tumpukan=',top);

Readln;

End.

1 komentar:

  1. nit apa beda dari masing masing operasi dari stak tu nit bisa dijelaskan ndak

    BalasHapus