Arsiy

Arsiy

Follow

Sabtu, 27 Februari 2010

DEKLARASI STACK PADA BAHASA PEMROGRAMAN

     Dalam bahasa pemrograman, untuk menempatkan stack biasanya digunakan sebuah array. Tetapi perlu diingat di sini bahwa stack dan array adalah dua hal yang berbeda. Misalkan suatu variabel S adalah sebuah stack dengan 100 elemen. Diasumsikan elemen S adalah integer dan jumlah elemennya maksimum adalah 100 elemen. Untuk mendeklarasikan stack dengan menggunakan array, harus dideklarasikan pula variabel lain yaitu TOP_PTR yang merupakan indeks dari array. Variabel TOP_PTR ini digunakan untuk menyatakan elemen yang berada pada posisi TOP dalam stack tersebut. Selanjutnya gabungan kedua variabel ini diberi nama STACK_STRUCT. Kemudian didefinisikan bahwa :

            NOEL(S) = TOP_PTR
            ISEMPTY(S) = TRUE, jika TOP_PTR = 0 dan
                                        FALSE, jika TOP_PTR > 0.

Maka bentuk deklarasinya dalam PASCAL adalah :

            TYPE Stack_Struct = Record
                                       Stack   : array[1..100] of integer;
                                       TopPtr : integer;
                                   End;
            VAR S : Stack_Struct;

Selanjutnya, untuk keperluan operasi PUSH dan POP harus dibuat suatu prosedur tersendiri, yaitu :




            PROCEDURE PUSH(Eon : integer);
            Begin
                If (S.TopPtr < NoelMax) Then Begin
                                    S.TopPtr := S.TopPtr + 1;
                                    S.Stack [S.TopPtr] := Eon
                                        End
                                Else Overflow_Condition
            End;

            PROCEDURE POP(Eoff : integer);
            Begin
                If (S.TopPtr > 0) Then Begin
                                Eoff := S.Stack[S.TopPtr];
                                S.TopPtr := S.TopPtr - 1
                                     End
                            Else Underflow_Condition   
            End;

Catatan :
Overflow adalah suatu keadaan di mana kita melakukan operasi PUSH terhadap stack dalam keadaan penuh. Underflow adalah keadaan di mana kita melakukan operasi POP terhadap stack kosong. Eon adalah elemen yang akan dimasukkan ke dalam stack dan Eoff adalah elemen yang akan dikeluarkan dari dalam stack.

Tidak ada komentar:

Posting Komentar