STACK atau TUMPUKAN
Merupakan
bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya
hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari List
(Top)
Prinsip Stack adalah LAST-IN-FIRST-OUT (LIFO).
Prinsip Stack adalah LAST-IN-FIRST-OUT (LIFO).
OPERASI STACK
- ISEMPTY
- ISFULL
- PUSH
- POP
- CLEAR
STACK PADA ARRAY
Deklarasi MAX_STACK
#define MAX_STACK 5
Deklarasi STACK dengan struct dan array data
typedef struct STACK{
int top;
int data[5];
};
Deklarasi variabel stack dari struct
STACK tumpuk;
#define MAX_STACK 5
Deklarasi STACK dengan struct dan array data
typedef struct STACK{
int top;
int data[5];
};
Deklarasi variabel stack dari struct
STACK tumpuk;
Inisialisasi
- Pada mulanya isi top dengan -1, karena array dalam C/C++ dimulai dari 0, berarti stack adalah KOSONG
- TOP adalah variabel penanda dalam STACK yang menunjukkan elemen teratas Stack.
- TOP of STACK akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH
- Digunakan untuk memeriksa apakah stack masih dalam kondisi kosong
- Dengan cara memeriksa TOP of STACK.
- Jika TOP masih = -1 maka berarti stack masih kosong
Fungsi IsFull
- Digunakan untuk memeriksa apakah kondisi stack sudah penuh
- Dengan cara memeriksa TOP of Stack.
Jika TOP of STACK = MAX_STACK-1 maka FULL (Penuh).
Jika TOP of STACK < MAX_STACK-1 maka belum penuh
Jika TOP of STACK < MAX_STACK-1 maka belum penuh
int IsFull ()
{
if (tumpuk.top == MAX_STACK-1
return 1;
else
return 0;
}
{
if (tumpuk.top == MAX_STACK-1
return 1;
else
return 0;
}
Fungsi PUSH
- Digunakan untuk memasukkan elemen ke dalam stack dan selalu menjadi elemen teratas stack
- Dengan cara :
2. Isikan nilai baru ke stack berdasarkan indeks TOP of STACK setelah ditambah satu (diincrement)
void push (char d[5])
{
tumpuk.top++
strcpy(tumpuk.data[tumpuk.top],d);
}
{
tumpuk.top++
strcpy(tumpuk.data[tumpuk.top],d);
}
Fungsi POP
2. Tampilkan nilai yang akan diambil.
3. Lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1
- Digunakan untuk menghapus elemen yang berada pada posisi paling atas dari stack.
- Dengan cara :
2. Tampilkan nilai yang akan diambil.
3. Lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1
void pop ()
{
printf(“Data yg di POP = %s\n”, tumpuk.data[tumpuk.top]);
tumpuk.top--;
}
{
printf(“Data yg di POP = %s\n”, tumpuk.data[tumpuk.top]);
tumpuk.top--;
}
Fungsi CLEAR
- Digunakan untuk mengosongkan stack / membuat stack hampa sehingga Top pada Stack berada kembali di posisi Top = -1
Latihan I Struktur Data (Pertemuan 5)
Diketahui suatu stack dgn max_stack = 6
- Bila dilakukan PUSH 3 elemen kedalam stack, kemudian di PUSH lagi 2 elemen dan di POP 3 elemen. Maka dimana posisi Top of Stack ?
- IsEmpty pada kondisi terakhir adalah ?
- Dari kondisi diatas, Berapa elemen yg hrs di PUSH unt mencapai kondisi penuh Top of Stack = max_stack ?
- Berapa elemen yg hrs di POP unt mencapai kondisi IsEmpty = True
Tidak ada komentar:
Posting Komentar