STACK
Stack atau Tumpukan adalah suatu struktur data yang terbentuk dari barisan yang terurut dari satuan data. Pada Stack, penambahan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir stack. Posisi ini disebut Puncak atau Top dari stack. tumpukan data ini seolah - olah diletakkan di atas data yang lain. Kita dapat menambahkan (menyisipkan) data dan mengambil (menghapus) dan melalui ujung yang sama, yang disebut sebagai ujung atas stack (top of stack). Stack bersifat LIFO (Last In First Out). Benda yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack. contoh ilutrasi nya adalah sebagai berikut..
Kondisi di dalam STACK
Di dalam stack, kita harus meperhatikan beberapa kondisi diantaranya :
- Penuh: bila elemen stack mencapai kapasitas maksimum. Pada kondisi ini tidak mungkin dilakukan penambahan ke stack. Penambahan elemen menyebabkan kondisi kesalahan overflow
- Kosong: bila tidak ada elemen di stack. Pada kondisi ini, tidak mungkin dilakukan pengambilan elemen dari stack. Pengambilan elemen menyebabkan kondisi kesalahan underflow.
Bagian bagian dari stack
- Stack Revresentasi Statis :
- Biasanya diimplementasikan dengan menggunakan pointer yang menunjuk pada elemen-elemen yang dialokasikan pada memori.
- Elemen ditambahkan akan menggunakan penambahan elemen pada awal stack (addfirst)
- Saat pengambilan atau penghapusan elemen menggunakan penghapusan di awal stack (delfirst).
Operator - Operator didalam Stack
Operasi Push
Adalah operasi menambahkan elemen baru pada sebuah stack Aturan penambahan stack di dalam operasi Push adalah sebagai berikut :
- Sebagai kondisi awal ada sebuah stack yang telah memiliki beberapa elemen dengan elemen paling atas sebagai top
- Dibuat sebuah elemen baru yang akan dimasukkan ke dalam stack
- Elemen baru dimasukkan ke dalam stack.
- Penunjuk top pada stack diubah menunjuk ke
elemen yang baru saja ditambahkan.
- Sebagai kondisi awal ada sebuah stack yang telah memiliki beberapa elemen dengan elemen paling atas sebagai top
- Penunjuk top diubah menjadi menunjuk elemen di bawah elemen atas
- Elemen atas diambil dari stack
= false, jika S bukan stack kosong
= false, jika (S)= 1
= false, jika S bukan stack penuh