Teknik Informatika - Universitas Muhammadiyah Malang (UMM)

Slides:



Advertisements
Presentasi serupa
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
Advertisements

STRUKTUR DATA (10) tree manipulation
Graph Traversals (Penelusuran Graph)
JULIAN ADINATA PAUL JHONATAN UKEU PUTRI ROMLI MAULANA
Pertemuan 8 STRUKTUR POHON (TREE).
STRUKTUR DATA TREE (POHON)
By : Fitroh Amaluddin & Galih Wasis W.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Implementasi Binary Tree
Pengenalan Algoritma & Struktur Data Teknik Informatika - Universitas Muhammadiyah Malang (UMM) Tahun Akademik Oleh : Nur Hayatin, S.ST.
Algoritma dan Struktur Data
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Algoritma dan Struktur Data
Z Bekti - Rita - Sevenhot Struktur Data & Algoritma 2009.
ADT Tree 2007/2008 – Ganjil – Minggu 8.
Binary Search Tree 2007/2008 – Ganjil – Minggu 9.
Tenia Wahyuningrum, S.Kom. MT
STRUKTUR DATA tree manipulation
BINARY TREE Universitas Ahmad Dahlan
1 Pertemuan Tree Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Pertemuan 13 Graph + Tree jual [Valdo] Lunatik Chubby Stylus.
Binary Tree Rinta Kridalukmana.
Tree. Tree (Pohon) Dalam dunia nyata, sebuah pohon memiliki : akar, cabang, daun. Dalam dunia komputer, pohon (tree) memiliki 3 (tiga) bagian tersebut.
Red-Black Trees.
Pertemuan 15 Red-Black Tree (RBT)
Organisasi Berkas Sekuensial Berindeks
1 Pertemuan 17 Heaps Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
1 Pertemuan 12 B-Tree Matakuliah: T0534/Struktur Data Tahun: 2005 Versi: September 2005.
Struktur Data Tree Eka Rahayu S. (2 Agustus 2011).
Binary Tree.
POHON / TREE.
Menggambar Tree wijanarto.
Defri Kurniawan POHON DAN POHON BINER Defri Kurniawan
Struktur Data Binary Search Tree (BST)
STRUKTUR POHON ( BINER )
Pohon dan Pohon Biner Anifuddin Azis.
PohonBiner Rachmansyah, S.Kom..
Manipulasi Tree.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
TREE KELOMPOK 7 HUSNATUL WILDA ( ) MISRIANA ( )
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
STRUKTUR DATA Tree (Struktur Pohon).
Tree (POHON).
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
NAMA : SITI HAJAR NIM : UNIT : B NO.HP :0852 –
STRUKTUR DATA 2014 M. Bayu Wibisono.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Manipulasi Tree.
Tree.
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Algoritma dan Struktur Data
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tree (Pohon).
POHON Pohon (Tree) merupakan graph terhubung tidak berarah dan tidak mengandung circuit. Contoh: (Bukan) (Bukan) (Bukan)
Oleh Shoffin Nahwa Utama, S.Kom
BINARY SEARCH TREE (BST)
IT234 Algoritma dan Struktur Data
Binary Search Tree (BST)
Tree.
IT234 Algoritma dan Struktur Data
AVL - Tree Defenisi : avl Tree adalah Binary Search Tree yang mempunyai ketentuan bahwa “Maksimum perbedaan height antara subtree kiri dan subtree kanan.
Pohon Biner.
Binary Search Tree (BST)
HEAP Bella Wulan N. | Ester Prenatalia A. Mutiara Fitri T. | Risang Nihapsari Purwaning M.S KOMSI 2018 DEFINISI HEAP ALGORITMA HEAP.
IT234 Algoritma dan Struktur Data
TREE Oleh : Neny silvia Nurhidayah Afny wilujeng Setyorini
Binary Search Tree (BST)
Transcript presentasi:

Teknik Informatika - Universitas Muhammadiyah Malang (UMM) Binary Search Tree Oleh : Nur Hayatin, S.ST Teknik Informatika - Universitas Muhammadiyah Malang (UMM) Tahun Akademik 2010-2011

Sub Topik Heap Tree Binary Search Tree AVL Tree Red-Black Tree

Heap Tree

Heap Tree Definisi : Heap Property : Heap tree adalah pohon biner yang tiap node nya memenuhi heap property. Heap Property : Kondisi 1: Nilai pada node induk harus lebih besar ( > ) atau lebih besar sama dengan ( >= ) dari node anak. Kondisi 2: Nilai pada node induk harus lebih besar ( < ) atau lebih besar sama dengan ( <= ) dari node anak.

Contoh Heap Tree 12 12 12 8 3 8 12 8 14 Node 12 memiliki properti heap Node 12 tidak memiliki properti heap Node 12 memiliki properti heap

Sift Up Penukaran posisi node induk terhadap node anak yang nilainya paling besar sehingga binary tree memenuhi heap property. 12 8 14 Tree tidak memenuhi heap property 14 8 12 Tree memenuhi heap property Proses ini disebut juga sifting up

Sift Up Proses sift up ini dilakukan berulang kali hingga : Node berada di posisi yang tepat dalam arti nilai node tsb masih lebih kecil daripada node induknya, atau Prosesnya telah sampai pada node root

Jenis Heap Tree Berdasarkan Heap Property : Max heap tree Min heap tree

Max Heap Tree Nilai node induk (root) lebih besar atau sama dengan nilai subtree. (heap property kondisi 1)

Contoh max heap tree 9 8 6 7 2 5 1

Min Heap Tree Nilai dari node induk (root) lebih kecil atau sama dengan nilai dari subtree. (heap property kondisi 2)

Contoh min heap tree 2 4 6 7 9 3 8

Representasi Heap Tree Representasi Heap Tree lebih efisien menggunakan Array.

Contoh representasi heap tree 9 8 6 7 2 5 1 9 8 7 6 7 2 6 5 1 1 2 3 4 5 6 7 8 9 10

Aturan Penambahan Node Penambahan node baru di posisi paling kiri pada level terbawah. Jika level terbawah penuh, tambahkan node pada level baru. Harus mengikuti aturan heap property. Jika tidak lakukan sift up.

Contoh Penambahan Node Tambahkan node baru disini Tambahkan node baru disini Contoh 1 : penambahan node dari cabang kiri ke kanan Contoh 2 : Penambahan node pada level baru

Penambahan Node Pada Max Heap Tree 9 8 6 7 2 5 1 3 4

Complete binary tree with 10 nodes. Penambahan Node Baru 9 8 6 7 2 5 1 7 Complete binary tree with 10 nodes.

Penambahan Node(5) 9 8 7 6 7 2 6 5 1 5 7 New element is 5.

Penambahan Node(20) 9 8 7 6 7 2 6 5 1 7 7 New element is 20.

Sifting Up(7) 9 8 7 6 2 6 5 1 7 7 7 New element is 20.

Sifting Up(8) 9 7 6 8 2 6 5 1 7 7 7 New element is 20.

Hasil Penambahan Node(20) 9 7 6 8 2 6 5 1 7 7 7 New element is 20.

Penambahan Node(15) ???? 20 9 7 6 8 2 6 5 1 7 7 7 New element is 15.

Sifting Up(8) 20 9 7 6 2 6 5 1 7 7 8 7 8 New element is 15.

Sifting Up(9) 20 7 6 9 2 6 5 1 7 7 8 7 8 New element is 15.

Hasil Penambahan Node(15) 20 15 7 6 9 2 6 5 1 7 7 8 7 8 New element is 15.

Max element is in the root. Penghapusan Max Node 8 6 7 2 5 1 20 9 15 Max element is in the root.

After max element is removed. Removed Root 15 7 6 9 2 6 5 1 7 7 8 7 8 After max element is removed.

Sifting Up(15) 15 7 6 9 2 6 5 1 7 7 8 7 Reinsert 15 into the heap.

Sifting Up(9) 15 9 7 6 2 6 5 1 7 7 8 7 Reinsert 9 into the heap.

Reinsert 8 into the heap Max element is 15. Sifting Up(8) 15 9 7 6 8 2 6 5 1 7 7 7 Reinsert 8 into the heap Max element is 15.

After max element is removed. Penghapusan Max Node 9 7 6 8 2 6 5 1 7 7 7 After max element is removed.

Sifting Up(9) 9 7 6 8 2 6 5 1 7

Sifting Up(8) 9 7 8 6 8 2 6 5 1 7

Sifting Up(7) 9 8 7 6 7 2 6 5 1

Hasil Remove Max Element (15) 9 8 7 6 7 2 6 5 1 7

Latihan input array = [-, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 8 4 7 6 9

Start at rightmost array position that has a child. Max Heap Tree 1 2 3 4 5 6 7 8 9 10 7 7 11 8 Start at rightmost array position that has a child.

Move to next lower array position. Sifting up(11) 1 2 3 4 11 6 7 8 9 10 7 7 5 8 Move to next lower array position.

Initializing A Max Heap 1 2 3 4 11 6 7 8 9 7 7 5 10 8

Initializing A Max Heap 1 2 3 9 11 6 7 8 4 7 7 5 10 8

Initializing A Max Heap 1 2 3 9 11 6 7 8 4 7 7 5 10 8

Initializing A Max Heap 1 2 7 9 11 6 3 8 4 7 7 5 10 8

Initializing A Max Heap 1 2 7 9 11 6 3 8 4 7 7 5 10 8

Initializing A Max Heap 1 11 7 9 6 3 8 4 10 7 7 5 8 Find a home for 2.

Initializing A Max Heap 1 11 7 9 10 6 3 8 4 8 7 7 5 Find a home for 2.

Initializing A Max Heap 1 11 7 9 10 6 3 8 4 7 7 2 8 5 Done, move to next lower array position.

Initializing A Max Heap 1 11 7 9 10 6 3 8 4 7 7 2 5 8 Find home for 1.

Initializing A Max Heap 11 7 9 10 6 3 8 4 7 7 2 8 5 Find home for 1.

Initializing A Max Heap 11 10 7 9 6 3 8 4 7 7 2 5 8 Find home for 1.

Initializing A Max Heap 11 10 7 9 5 6 3 8 4 7 7 2 8 Find home for 1.

Hasil Akhir 11 10 7 9 5 6 3 8 4 7 7 2 1 8 Done.

Binary Search Tree (BST)

Definisi Sebuah binary tree dimana subtree sebelah kiri lebih kecil dari subtree sebelah kanan.

Contoh BST 20 10 6 2 8 15 40 30 25

Binary Search Tree Operasi BST : penambahan, penghapusan, pencarian node tertentu, pencarian niai terkecil dan pencarian nilai terbesar. Properti Binary Search Tree : Untuk setiap node X, semua elemen di subpohon kirinya bernilai lebih kecil dari nilai X dan semua elemen di subpohon kanannya bernilai lebih besar dari nilai X.

Contoh Binary Search Tree Bukan Binary Search Tree

Insert Time complexity = O(height of the tree) Dimulai dengan penelusuran dari root untuk mencari posisi yang tepat. Jika elemen X ditemukan (berarti X sudah ada di BST), maka tidak perlu melakukan aksi apapun. Jika tidak, maka letakkan X sebagai node terakhir pada jalur penelusuran Time complexity = O(height of the tree)

Delete Saat akan menghapus sebuah node, kita juga harus memikirkan seluruh node anak dari node tsb. Hal penting adalah agar pohon setelah dihapus tetap merupakan BST.

Operasi Penghapusan / remove() Ada 3 kasus : Elemen ada di leaf/daun. Elemen yang memiliki degree 1. Elemen yang memiliki degree 2.

Penghapusan Node Daun (Node 7) 20 10 6 2 8 15 40 30 25 35 7 18 Remove a leaf element. key = 7

Penhapusan Node Daun (Node 35) 20 10 6 2 8 15 40 30 25 35 7 18 Remove a leaf element. key = 35

Penghapusan Node Ber-degree 1 20 10 6 2 8 15 40 30 25 35 7 18 Remove from a degree 1 node. key = 40

Penghapusan Node Ber-degree 1 20 10 6 2 8 15 40 30 25 35 7 18 Remove from a degree 1 node. key = 15

Penghapusan Node Ber-degree 2 20 10 6 2 8 15 40 30 25 35 7 18 Remove from a degree 2 node. key = 10

Remove From A Degree 2 Node 20 10 40 6 15 30 18 25 35 2 8 7 Replace with largest key in left subtree (or smallest in right subtree).

Penghapusan Node Ber-degree 2 20 10 40 6 15 30 18 25 35 2 8 7 Replace with largest key in left subtree (or smallest in right subtree).

Penghapusan Node Ber-degree 2 20 8 40 6 15 30 18 25 35 2 8 7 Replace with largest key in left subtree (or smallest in right subtree).

Latihan Remove from a degree 2 node. key = 20 20 10 6 2 8 15 40 30 25 35 7 18 Remove from a degree 2 node. key = 20

Penghapusan Node Ber-degree 2 20 10 40 6 15 30 18 25 35 2 8 7 Replace with largest in left subtree.

Penghapusan Node Ber-degree 2 20 10 40 6 15 30 18 25 35 2 8 7 Replace with largest in left subtree.

Penghapusan Node Ber-degree 2 18 10 40 6 15 30 18 25 35 2 8 7 Replace with largest in left subtree.

Hasil Akhir 18 10 40 6 15 30 25 35 2 8 7

Pencarian pada BST Jika mencari elemen bernilai 15, maka akan langsung ditemukan. Jika mencari elemen bernilai < 15, maka kita cari di subpohon kiri. Jika mencari elemen bernilai > 15, maka kita cari di subpohon kanan.

findMin/ findMax findMin : mengembalikan node dengan elemen terkecil pada BST Pencarian dimulai dari root dan bergerak ke kiri terus sepanjang subpohon kiri dan berhenti pada elemen terakhir. Proses serupa terhadap metode findMax

Red-Black Tree

Red-Black Tree Red-black tree adalah binary search tree yang memenuhi properti sbb : Setiap node adalah red atau black Node root adalah black Setiap daun adalah black Semua anak dari node red adalah black Setiap jalur (path) dari sebuah node ke daun berisi node black yang jumlahnya sama Struktur Data - Tree

Contoh Red-Black Tree Struktur Data - Tree

AVL Tree

AVL Tree AVL Properti : Sebuah node memiliki AVL property jika height (tinggi) subpohon kiri & subpohon kanan node tsb sama atau berbeda 1. Height (tinggi) pohon adalah jarak dari root menuju daun terbawah yang dimiliki pohon tsb AVL Tree adalah pohon yang setiap node nya memiliki AVL property

Pustaka Sartaj Sahni , “Data Structures & Algorithms”, Presentation L1. Mitchell Waite, “Data Structures & Algorithms in Java”, SAMS, 2001