Pertemuan 8 Stack dengan Array Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1 Pertemuan 8 Stack dengan Array
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat menghasilkan program modular ADT stack yang diimplementasikan dengan array
Pengertian dan kegunaan stack Implementasi stack dengan array Outline Materi Pengertian dan kegunaan stack Implementasi stack dengan array Operasi pada ADT stack Contoh progam stack array
Stack S terdiri dari n elemen S = ( ao , a1 , … , ai , ai+1 , …, an-1 ) Elemen paling bawah Elemen paling atas TOP Bentuk khusus dari ordered list LIFO : Last In First Out Insert dan delete data di akhir list Akhir list ditandai dengan variabel TOP
Insert dan Delete Elemen C C T B B B T T A A A A T T T = TOP
Stack sebagai ADT Obyek : ordered list, jml elemen 0 atau lebih Operasi : Create IsFull Add IsEmpty Delete
Implementasi Stack dengan Array 1-D #define MAX_STACK_SIZE 100 eltype stack[MAX_QUEUE_SIZE]; int top = -1; void add (int *top, eltype item) { if (*top >= MAX_STACK_SIZE) { printf (“stack full”); return; } stack[++*top]=item;
eltype delete (int *top) { if (*top == -1) { printf (“stack empty”); return; } return stack[*top]; *top--;
STACK Basis operasi LIFO (Last In First Out), Elemen yang diambil / dihapus adalah elemen yang baru dimasukkan / diinsert STACK PUSH POP C B D E A
OPERASI STACK CREATE() Untuk menciptakan stack yang baru dan kosong. CLEAR() Untuk menghapus semua elemen dalam Stack. PUSH (ElementType e) Untuk memasukkan 1 elemen ke dalam Stack. POP (ElementType *e) Untuk mengambil 1 elemen dari Stack. int EMPTY() Untuk mengecek apakah Stack masih kosong atau sudah berisi data. int FULL() Untuk mengecek apakah Stack sudah penuh atau masih bisa menampung data.
Contoh STACK Contoh sebuah STACK memiliki jumlah maksimum 3 elemen: CREATE( ) 2 1 TOP PUSH( 60 ) POP( *e) PUSH( 50 ) 2 60 30 50 2 30 50 TOP TOP 1 1 2 50 1 TOP PUSH( 20 ) CLEAR( ) PUSH( 30 ) 2 60 30 50 2 2 30 50 TOP 1 1 TOP 1 TOP
Implementasi STACK Implementasi STACK Array Single STACK : menggunakan 1 ujung STACK utk PUSH maupun POP Double STACK : menggunakan 2 ujung STACK utk PUSH maupun POP Single STACK dg Array Double STACK dg Array TOP TOP1 TOP2 ( i ) Empty ( i ) Empty TOP TOP1 TOP2 ( ii ) ( ii ) TOP TOP2 TOP1 ( iii ) Full ( iii ) Full