Struktur Data
nur.zahrati@polibatam.ac.id
Definisi Stack
Representasi Stack
Overview
Operasi pada Stack
2
Secara bahasa, STACK = tumpukan
Sekumpulan data yang organisasi atau strukturnya
bersifat tumpukan
Definisi Stack
3
Last In First Out (LIFO)
Data yang terakhir masuk ke dalam stack akan menjadi
yang pertama kali keluar
Top menjadi satu-satunya alamat tempat terjadinya
operasi
Stack
4
Cara paling sederhana untuk merepresentasikan stack
menggunakan array
Dengan asumsi: banyaknya elemen stack tidak akan
melebihi batas maksimum elemen array
Jadi dibutuhkan:
Representasi 1 buah array untuk menyimpan data stack dengan ukuran
maksimal tertentu
Stack 1 buah penunjuk elemen teratas dari stack (top)
Buat struktur (struct) untuk stack
5 7 10 Top = 2
0 1 2 3 4 5 6 7 8 9
5
Stack dapat juga direpresentasikan sebagai list dengan
Representasi pointer untuk ukuran stack bervariasi (tidak terbatas
Stack jumlah maksimal elemen array)
Belum dibahas sekarang
6
Jumlah maksimum isi stack
(modifikasi sesuai kebutuhan)
8
Create/inisialisasi membuat stack baru
yang masih kosong
isEmpty mengembalikan true jika stack
Operasi Lain kosong
pada Stack isFull mengembalikan true jika stack penuh
getTop mengambil elemen yang terakhir
disisipkan, jika tidak kosong
9
Stack S;
Membuat
Variabel Variabel S bertipe Stack yang dideklarasikan sebagai
variabel global (dideklarasikan di atas main)
Bertipe Stack
Variabel S ini akan dijadikan contoh dalam penjelasan
operasi-operasi pada stack di slide selanjutnya
Membuat stack baru yang masih kosong
K. Awal: Sembarang
K. Akhir: Tercipta stack kosong
Set nilai top di bawah nilai indeks terkecil yang mungkin dari array
Misal: indeks array dimulai dari 0, maka set top = -1
Create
void create(Stack *S)
/Inisialisasi {
(*S).top = -1;
} int main()
{
create(&S);
…
}
Memeriksa apakah stack kosong
Stack kosong jika top = -1
Pemeriksaan isEmpty dilakukan sebelum operasi
getTop dan Pop
int isFull(Stack S)
isFull {
return (S.top == MAX-1);
}
14
K. Awal: Stack S dan x sudah terdefinisi, S tidak
penuh
K. Akhir: top = top+1 dan x menjadi elemen top
stack
15
Menghapus elemen terakhir stack
Mengubah nilai top (dikurangi 1)
Dicek dahulu apakah stack kosong
tipeItem getTop(Stack S)
getTop {
return (S.data[S.top]);
}
Apa saja yang sudah Anda pelajari hari ini?
18