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;

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;

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;

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;

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. 

Subscribe to receive free email updates: