Stack.

Slides:



Advertisements
Presentasi serupa
Double Linked List.
Advertisements

Single linked list.
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
STRUKTUR DATA array stack dan queue
Mata Kuliah : Struktur Data Pertemuan : V
LINKED LIST Single Linked List.
LINKED LIST.
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
Queue.
STACK (TUMPUKAN).
Struktur Organisasi Data 2
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK.
STACK.
Struktur Data (Data Structure) – IS 2313
Pointer dalam Stack.
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
STACK.
Queue.
STACK.
Algoritma & Struktur Data Linked List Evangs Mailoa.
Algorithm and Data Structures.
Linear Data Structures (Stack)
Algoritma dan Struktur Data
STRUKTUR DATA (4) array stack dan queue
Struktur Data (Data Structure) – IS 2313
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
BAB 3 STACK (TUMPUKAN).
STACK.
Stack Pertemuan 11.
STRUKTUR DATA (2) Single Linked List
Chapt 04 : Stack Oleh : Yuli Praptomo PHS, S.Kom
Stack.
Sapta Candra Miarsa,S.T.,M.T.
STRUKTUR DATA IMPLEMENTASI STACK.
STRUKTUR DATA IMPLEMENTASI STACK.
Tumpukan dalam struktur data
Defri Kurniawan ADT STACK Defri Kurniawan
Stack Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman Bersifat LIFO (Last In First Out) Benda yang terakhir masuk ke dalam.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Defri Kurniawan QUEUE Defri Kurniawan
STACK Denny Agustiawan,M.pd
Linear Data Structures (Stack)
STACK (Tumpukan).
STRUKTUR DATA : STACK Sri marini.st.
STRUKTUR DATA IMPLEMENTASI STACK.
Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
Stack.
STRUKTUR DATA IMPLEMENTASI STACK.
Algoritme dan Stuktur Data
STRUKTUR DATA IMPLEMENTASI STACK.
STACK HARJANTO SUTEDJO.
Queue (Antrian).
STRUKTUR DATA IMPLEMENTASI STACK.
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
STACK (TUMPUKAN) Stack atau tumpukan didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan dan pengambilan elemen melalui.
STRUKTUR DATA Stack atau Tumpukan.
STRUKTUR DATA IMPLEMENTASI STACK.
STACK.
Contoh Implementasi Stack 1
BAB 3 STACK (TUMPUKAN).
STACK (Tumpukan) Tumpukan Koin.
Defri Kurniawan STACK DENGAN LIST Defri Kurniawan
Defri Kurniawan ADT STACK Defri Kurniawan
Transcript presentasi:

Stack

Representasi dengan List

Pendeklarasian SLL typedef struct TStack *PStack typedef struct TStack { int elemen PStack bawah }; contoh pendeklarasian variable stack PStack stack

Inisialisasi Mengisi nilai pointer stack dengan NULL. Fungsi Inisialisasi (Implementasi Bhs C) void inisialisasi(PStack *stack) { *stack  NULL } Cara pemanggilannya adalah : inisialisasi(&stack);

Operasi IsEmpty(1) Memeriksa apakah pointer stack bernilai NULL. Jika stack bernilai NULL maka menandakan stack sedang keadaan empty (kosong) dan akan me-return-kan nilai 1 dan jika tidak NULL maka menandakan stack mempunyai isi (tidak kosong) sehingga operasi tersebut akan me-return-kan nilai false (0).

Operasi IsEmpty(2) int isempty(PStack stack) if (stack = NULL) return 1; else return 0; End if Cara penggunaannya adalah //Penggunaan isempty dalam statement if if( isempty(stack) ) ...

Operasi IsFull(1) Memeriksa apakah memori masih dapat digunakan untuk alokasi sebuah elemen stack. Jika alokasi dapat dilakukan, maka berarti memori masih belum penuh dan proses push dapat dilakukan. Tetapi jika alokasi memori gagal dilakukan, maka berarti memori penuh dan tidak bisa menambah lagi elemen stack.

Operasi IsFull(2) Cara pemanggilannya adalah : int isfull() PStack test test(PStack)malloc(sizeof(TStack)) if (test = NULL) return 1 else free(test) return 0 end if Cara pemanggilannya adalah : if( !isfull(stack) ) … // jika stack tidak penuh

Operasi Push(1) Periksa apakah memori penuh (isfull). Mengalokasikan suatu elemen linked list (disebut variable baru) Periksa jika stack dalam keadaan kosong maka pointer yang menunjuk ke awal stack diisi dengan pointer baru, dan jika dengan menambah field top dengan 1, kemudian elemen pada posisi top diisi dengan elemen data baru. Tetapi jika pointer penunjuk stack sudah menunjuk ke suatu data, maka sambungkan field pointer bawah (penunjuk ke data sebelumnya) dari pointer baru ke pointer penunjuk posisi akhir stack (top) dan kemudian pindahkah pointer penunjuk posisi akhir stack ke pointer baru.

Operasi Push(2) Cara penggunaannya adalah : void push(PStack *stack, int data) PStack baru; if (!isfull()) baru(PStack)malloc(sizeof(TStack)); baru.bawah  NULL baru.elemendata if(isempty(*stack)) *stackbaru else baru.bawah*stack *stackbaru; end if output("Memory Full. Push Gagal.") Cara penggunaannya adalah : push(&stack,5);// push 5 ke dalam stack

Operasi Pop(1) Periksa apakah.stack kosong (isempty), jika kosong maka proses pop tidak bisa dilakukan. Jika stack tidak kosong maka proses pop dijalankan. Proses pop-nya sendiri adalah mengambil elemen yang ditunjuk oleh pointer stack kemudian simpan dalam variable data. Buat variable pointer bantu yang diisi dengan pointer penunjuk stack yang nantinya akan dihapus dari memori. Pointer penunjuk stack dipindahkan ke posisi yang ditunjuk oleh field pointer bawah dari variable bantu.

Operasi Pop(2) Cara pemanggilannya adalah : int pop(PStack *stack) int data PStack bantu; if (!isempty(*stack)) data(*stack).elemen; bantu*stack *stackbantu.bawah; free(bantu) return data else return 0   end if Cara pemanggilannya adalah : int data; data=pop(&stack);

Mengubah Notasi Infix menjadi Notasi Postfix (1) Push tanda “(“ ke stack dan tambahkan tanda “)” di sentinel di Q. Scan Q dari kiri ke kanan, kemudian ulangi langkah c s.d f untuk setiap elemen Q sampai stack Q kosong. Jika yang discan adalah operand, maka tambahkan ke P Jika yang discan adalah “(“ maka push ke stack

Mengubah Notasi Infix menjadi Notasi Postfix (2) Jika yang discan adalah “)” maka pop isi stack sampai ditemukan tanda “(“, kemudian tambahkan ke P sedangkan tanda “(“ tidak disertakanke P. Jika yang discan adalah operator, maka : Jika elemen paling atas dari stack adalah operator yang mempunyai tingatan sama atau lebih tinggi dari operator yang discan, maka pop operator tersebut dan tambahkan ke P. Push operator tersebut ke stack. Keluar

Contoh Q : A + ( B * C - ( D / E ^ F ) * G ) * H

Menghitung Ekspresi Matematika yang disusun dalam Notasi Postfix Tambahkan tanda “)” pada sentinel di P Scan P dari kiri ke kanan, ulangi langkah c dan d untuk setiap elemen P sampai ditemukan sentinel. Jika yang discan adalah operand, maka push ke stack. Jika yang discan adalah operator (sebut opr1), maka Pop 1 buah elemen teratas dari stack, simpan dalam variable var1. Pop 1 buah elemen teratas dari stack, simpan dalam variable var2. Hitung variable (var2 opr1 var1), simpan hasil di variable hitung. Push variable hitung ke stack. Pop isi stack dan simpan di variable value. Keluar.

Contoh P : 5, 2, 6, +, *, 12, 4, /, -, )