Konsep Stack (Tumpukan) Pada Struktur Data
STACK PADA STRUKTUR DATA
Stack merupakan struktur data dimana menyimpan data item dalam ruang yang telah pra-dialokasikan. Hal ini mampu untuk menyimpan data di mana saja dalam jangkauan. Di samping itu, stack pada struktur data tidak memungkinkan Anda untuk menyimpan data di mana Anda ingin agar ialah penting. Hal ini didasarkan pada sifat LIFO (Last In First Out) - yang terakhir tiba, yang pertama untuk dilayani.
Tumpukan adalah array sederhana yang menyimpan item data menggunakan indeks yang menunjuk ke elemen terakhir yang telah dimasukkan. Jika data yang diminta dari stack, elemen terakhir yang telah tersimpan 'POPED' dari array dan kembali.
Saat popping terjadi, maka elemen terakhir dikembalikan dan dibuang dari tumpukan dengan pointer atas yang dikurangi dengan 1 (satu). Jelas, apabila stack dalam keadaan kosong, tidak ada yang kembali dan pointer atas akan tetap tak tersentuh. Satu selalu dapat menambahkan elemen ke stack oleh push item data pada akhir tumpukan ditunjukkan oleh pointer atas. Setelah setiap item menambahkan, pointer atas ditambah 1, namun barang tidak akan ditambahkan dan pointer atas tidak akan meningkat sebesar 1 jika stack sudah penuh. Tumpukan menolak setiap item lebih yang akan ditambahkan ketika penuh sampai setidaknya.
Ilustrasi Stack |
1. item pop
Fungsi yang terlibat dalam operasi Struktur Stack dataOperasi dasar yang dilakukan ketika bekerja dengan tumpukan tercantum di bawah ini.[Dengan asumsi DataItem adalah pra-deklarasi tipe data pengguna. Ini mungkin sesuatu seperti integer, string atau benda data lainnya. ]
Fungsi Keterangan
Prosedur InitStack; Menginisialisasi struktur data stack.
- Fungsi IsEmpty: Boolean; Mengembalikan nilai true jika stack kosong.
- Fungsi IsFull: Boolean; Mengembalikan nilai true jika stack sudah penuh.
- Fungsi Pop: DataItem; Jika daftar adalah tidak kosong dikembalikan dan pointer atas tetap sama. Jika tidak, itu memperoleh item data terakhir dari daftar dan mengembalikannya. Atas pointer menurun 1.
Prosedur push (item: DataItem); Jika stack tidak penuh, item lulus sebagai argumen ditambahkan ke akhir daftar ditunjukkan oleh pointer atas dan terakhir ini meningkat sebesar 1.
- Fungsi getSize: Integer; Mengembalikan pointer atas.
2. Implementasi
Implementasi yaitu implementasi dari fungsi mendasar yang telah ditunjukkan pada bagian bawah ini.
Pertama tim akan menunjukkan cara untuk menyatakan struktur data stack menggunakan array dan pointer atasnya. Ini akan variabel global dalam program Anda selama Anda memutuskan untuk menggunakannya secara khusus di beberapa prosedur atau fungsi. Contoh :
const
STACK_SIZE = 100;
var
myStack: Array [1..STACK_SIZE] dari DataItem;
topPointer: Integer;
STACK_SIZE = 100;
var
myStack: Array [1..STACK_SIZE] dari DataItem;
topPointer: Integer;
Inisialisasi yaitu untuk dipanggil sebelum operasi pada stack.
Prosedur InitStack;Mulai
topPointer: = 0;End;Kita sekarang implemement yang IsEmpty () dan IsFull () fungsi.Fungsi IsEmpty: Boolean;Mulai
IsEmpty: = false;
If (topPointer = 0) then
IsEmpty: = true;End;Fungsi IsFull: Boolean;Mulai
IsFull: = false;
If ((topPointer + 1) = STACK_SIZE) then
IsFull: = true;End;
topPointer: = 0;End;Kita sekarang implemement yang IsEmpty () dan IsFull () fungsi.Fungsi IsEmpty: Boolean;Mulai
IsEmpty: = false;
If (topPointer = 0) then
IsEmpty: = true;End;Fungsi IsFull: Boolean;Mulai
IsFull: = false;
If ((topPointer + 1) = STACK_SIZE) then
IsFull: = true;End;
Di bawah ini merupakan implementasi dari Pop () dan push () fungsi dan memanfaatkan fungsi yang baru saja di laksanakan.
Fungsi Pop: DataItem;Mulai
Pop: = nil;if tidak maka IsEmptyBeginPop: = myStack [topPointer];topPointer: = topPointer - 1;End;
End;Prosedur push (item: DataItem);Mulai
If tidak maka IsFul
Begin
myStack [topPointer + 1]: = barang;topPointer: = topPointer + 1;End;
End;
Pop: = nil;if tidak maka IsEmptyBeginPop: = myStack [topPointer];topPointer: = topPointer - 1;End;
End;Prosedur push (item: DataItem);Mulai
If tidak maka IsFul
Begin
myStack [topPointer + 1]: = barang;topPointer: = topPointer + 1;End;
End;
Dan akhirnya, tim menerapkan fungsi utilitas getSize (). Walaupun seseorang dapat mengakses ukuran saat stack dengan menggunakan topPointer variabel global itu sendiri, yang merupakan praktik yang baik untuk memanfaatkan fungsi bukan variabel global.
Fungsi getSize: Integer;MulaiGetSize: = topPointer;
End;
End;
Itulah sedikit penjelasan dari Konsep Stack (Tumpukan) Pada Struktur Data. Ini adalah utilitas yang sangat berguna yang tidak disediakan siap dibuat dengan bahasa pemrograman. Tumpukan memiliki berbagai keperluan seperti di parsing kalkulator baris perintah - pencocokan kurung. Tumpukan juga digunakan pasti oleh sistem operasi Anda dalam melaksanakan program. Ketika fungsi ini disebut, lokasi di memori fungsi embedding didorong ke stack untuk referensi nanti, sehingga sistem operasi 'ingat' di mana ia telah melanggar pelaksanaan fungsi sebelumnya. Bila fungsi terus eksekusi, itu poped dari tumpukan.
0 Response to "Konsep Stack (Tumpukan) Pada Struktur Data"
Post a Comment