Struktur Data Stack.

Slides:



Advertisements
Presentasi serupa
Queue (Antrian).
Advertisements

LINKED LIST.
STRUKTUR DATA array stack dan queue
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
:: Fetty Tri Anggraeny ::
STACK (TUMPUKAN).
Struktur Organisasi Data 2
Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK.
STACK.
Struktur Data (Data Structure) – IS 2313
Pointer dalam Stack.
QUEUE (antrian).
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
STACK.
PERTEMUAN KE-5 Kamis, 7 Oktober Pemetaan Trianguler Array ABCDE FGHI JKL MN O A B C D E F G H I J K L M N O T(1,1)  S(1)T(2,1)  S(N+1) T(1,2)
Stack (Tumpukan).
STACK.
Struktur Data List Linear : Linked List (Double Linkedlist)
Algorithm and Data Structures.
Mempelajari tipe data queue dan bagaimana menggunakan fungsi insert, remove, is_empty dan is_full. Mempelajari bagaimana mengimplementasikan queue dengan.
Linear Data Structures (Stack)
Algoritma dan Struktur Data
STRUKTUR DATA (4) array stack dan queue
Struktur Data List Linear : Linked List (Single Linkedlist)
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
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.
Pertemuan 8 Stack dengan Array
Stack Pertemuan 11.
Stack.
Stack Stack adalah salah satu bentuk list dimana penghapusan dan pemasukan elemen hanya dapat dilakukan pada satu posisi yaitu di posisi akhir list. Posisi.
Chapt 04 : Stack Oleh : Yuli Praptomo PHS, S.Kom
Stack.
STACK ( TUMPUKAN ) Fajrizal.
Sapta Candra Miarsa,S.T.,M.T.
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Tumpukan dalam struktur data
Stack Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman Bersifat LIFO (Last In First Out) Benda yang terakhir masuk ke dalam.
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
STACK Denny Agustiawan,M.pd
STACK 6.3 & 7.3 NESTED LOOP.
STACK (Tumpukan).
STRUKTUR DATA : STACK Sri marini.st.
Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
STACK Rohimah, S.Kom..
STACK Yohana Nugraheni.
Algoritme dan Stuktur Data
Stack.
STACK HARJANTO SUTEDJO.
STACK Kuliah Struktur Data Pascal
QUEUE (Antrian) #Kulia 6 Algoritma dan Struktur Data.
Double STACK 6.3 & 7.3 NESTED LOOP.
STACK Rohimah, S.Kom..
STACK.
STRUKTUR DATA (3) STACK.
Algoritma dan Struktur Data
BAB 3 STACK (TUMPUKAN).
STACK (Tumpukan) Tumpukan Koin.
Struktur Data Linear Created by Fifth Group, S3B TI Anggota
Defri Kurniawan ADT STACK Defri Kurniawan
Transcript presentasi:

Struktur Data Stack

Stack Definisi Stack Operasi-operasi dasar Stack Push Pop Contoh program operasi dasar Stack menggunakan array dan linked list

STACK (TUMPUKAN) Kumpulan items yang teratur dimana items baru akan dimasukkan ke dan sebuah items akan dikeluarkan dari satu ujung yang sama, yaitu dari TOP sebuah stack. Struktur data linier dimana hanya bagian TOP-nya saja yang bisa diakses. Bersifat LIFO = Last In First Out. Bisa diimplementasikan menggunakan array atau Linked List.

Last In First Out

Penggunan Stack History pada web browser. Undo Log pada text editor. Pemrosesan struktur bersarang (nested) : loop, rekursi, fungsi, dll. Algoritma back tracking – Artificial Intelegence

Operasi Dasar Stack Push : memasukkan sebuah item baru ke dalam stack. Pop : mengeluarkan sebuah item dari stack. Operasi lain : Is_Empty, Is_Full, Top Note : pop dan push dilakukan melalui ujung yang sama (TOP)

Contoh 3. Push ‘B’ : top=1 4. Push ‘C’ top=2 Inisialisasi : top=-1 2. Push ‘A’ : top=0 3 2 1 B A 3 2 1 A 3 2 1 B C A 3 2 1

Contoh 5. Pop : top=1 Push ‘E’ top=1 6. Pop : top=0 B A 3 2 1 E A 3 2 E A 3 2 1 A 3 2 1

Visualisasi Operasi Stack X A E B TOP remove: “POP” insert ‘B’: PUSH ‘B’ D K P O T R W Y a b c d e f g h i j

Stack dengan Array TOP adalah indeks terakhir 1 2 Data A B C Push ‘D’ Indeks 1 2 3 Data A B C D Pop Indeks 1 2 3 Data A B C D

Buat atribut dan initialize class StackArray attr_accessor :maxsize, :top, :items def initialize @top=0 @maxsize=5 @items=Array.new end

Method isEmpty def Is_Empty if @top==-1 return TRUE else return FALSE end

Method isFull def Is_Full if @top==@maxsize-1 return TRUE else return FALSE end

Method pop def pop if @top < 0 # stack is empty printf("\nERROR: the stack is empty!"); else data = @items[top]; @top = @top - 1; printf("\nPOP SUCCEED"); end

Method push def push (data ) if @top == @maxsize-1 # stack is full printf("\nERROR: the stack is full!"); else @top = @top + 1; @items[@top] = data; printf("\nPUSH SUCCEED"); end

Method show def show printf("\nISI STACK :\n"); i=@top while i>=0 puts @items[i]; i=i-1 end

Contoh akses baru=StackArray.new baru.push("A") baru.push("B") baru.push("C") baru.show baru.pop baru.push("D") baru.push("E")

Stack dengan Linked List Jika sebuah linked list SELALU menambahkan node baru dan menghapus node lama dari salah SATU ujungnya saja (posisi Head ataukah Tail)  STACK. HOW?

Push Operation Identik dengan operasi prepend

Pop Operation Identik dengan operasi delfirst

TUGAS 4 NPM ganjil  HEAD NPM genap  TAIL

Pengecekan Tanda Kurung Aplikasi 1 : Pengecekan Tanda Kurung

Algoritma valid = true s = the_empty_stack while ( we_have_not_read_the_entire_string ) { read the next symbol (symb) of the string if ( symb == ‘(‘ || symb == ‘[‘ || symb == ‘{‘ ) push ( s, symb ) if ( symb == ‘)‘ || symb == ‘]‘ || symb == ‘}‘ ) if ( empty ( s ) ) valid = false else { k = pop ( s ) if ( k is_not_the_matching_opener_of_symb ) valid = false } // end else } // end while if ( ! empty ( s ) ) valid = false if ( valid ) output ( “the string is valid” ) else output ( “the string is not valid” )

Contoh Cek apakah string di bawah ini valid! (a+b)} (h-(j-(k-[l-n])) {x+(y-[a+b])*c-[(d+e)]}

Konversi Infix ke Postfix Aplikasi 2 : Konversi Infix ke Postfix

Ekspresi Aritmatika Ekspresi aritmatika umumnya ditulis dalam bentuk infix. Contoh : A+B A-C+B A+((B*C)/D) Komputer lebih mudah mengevaluasi ekspresi postfix, karena tidak perlu mengelompokkan subekspresi kedalam tanda kurung.

Infix, Postfix, dan Prefix A*B AB* *AB A*(B+C) ABC+* *A+BC (A*B)+C AB*C+ +*ABC A+((B*C)/D) ABC*D/+ +A/*BCD (A^2+B^2)*(C-D) A2^B2^+CD-* *+^A2^B2-CD

Algoritma s = stack kosong while (seluruh infix belum dibaca) String infix, postfix s = stack kosong while (seluruh infix belum dibaca) { baca simbol selanjutnya pada infix (symb) if symb adalah operand tambahkan pada postfix else if symb adalah ‘(‘, ‘{‘, ‘[‘ PUSH symb else if symb adalah ‘)‘, ‘}‘, ‘]‘ while(TopOp stack adalah operator) POP stack dan tambahkan ke postfix POP stack else if symb adalah operator{ if stack kosong PUSH symb ke stack else{ TopOp =baca data di TOP stack if(symb>TopOp) else if TopOp adalah ‘(‘, ‘{‘, ‘[‘ else { POP stack dan tambahkan pada postfix } if stack tidak kosong

Aplikasi 3 : EVALUASI POSTFIX

Algoritma s = stack kosong while(seluruh string belum dibaca) { baca simbol selanjutnya (symb) if symb adalah operand PUSH symb if symb adalah operator OpKanan = POP stack OpKiri = POP stack hitung hasil PUSH hasil } POP stack untuk memperoleh hasil akhir

Contoh Evaluasi postfix a. 4 9 5 + * b. 4 9 * 5 + c. 4 9 5 * 7 / + d. 4 2 ^ 9 2 ^ + 5 7 - *

Tugas Buat program untuk: Pengecekan tanda kurung {a^2 - [ (b+c)^2 - (d+e)^2 ]} {a - [(b+c))) - (d+e)]} Konversi infix ke postfix {f*2 - [ (g+h)^2 - (i+j)^2 ]} p + (q*r/3) * (s + t) Evaluasi postfix 12^23+2^45+2^-- abc*3/cb+*+, jika a=1, b=2 dan c=3