Struktur Data Tree Eka Rahayu S. (2 Agustus 2011).

Slides:



Advertisements
Presentasi serupa
STRUKTUR DATA (10) tree manipulation
Advertisements

Graph Traversals (Penelusuran Graph)
Matematika Diskrit Suryadi MT Tree.
Pertemuan 8 STRUKTUR POHON (TREE).
By : Fitroh Amaluddin & Galih Wasis W.
RED BLACK TREE INSERTION
Algoritma dan Struktur Data
Masalah, Ruang Masalah dan Pencarian
Tree.
Tree Yuliana S.
Algoritma dan Struktur Data
Pertemuan 6 TREE & BINARY TREE
Algoritma & Struktur Data Oleh : Nur Hayatin, S.ST
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
Algoritma dan Struktur Data
Binary Search Tree 2007/2008 – Ganjil – Minggu 9.
Tenia Wahyuningrum, S.Kom. MT
Metode Pencarian/Pelacakan
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.
Algoritma dan Struktur Data
Tree. Tree (Pohon) Dalam dunia nyata, sebuah pohon memiliki : akar, cabang, daun. Dalam dunia komputer, pohon (tree) memiliki 3 (tiga) bagian tersebut.
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Pertemuan 15 Red-Black Tree (RBT)
Pertemuan 21 BASIC SEARCH AND TRAVERSAL
Organisasi Berkas Sekuensial Berindeks
Penyelesaian Masalah menggunakan Teknik Pencarian Heuristic Search
Binary Tree.
POHON / TREE.
Menggambar Tree wijanarto.
Defri Kurniawan POHON DAN POHON BINER Defri Kurniawan
TREE STRUCTURE (Struktur Pohon)
STRUKTUR DATA Chapt 6 : TREE Oleh : Yuli Praptomo PHS, S.Kom.
Struktur Data Binary Search Tree (BST)
PohonBiner Rachmansyah, S.Kom..
Diagram Pohon (Tree Diagram)
Manipulasi Tree.
Pertemuan 22 Graph Operation
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
STRUKTUR DATA 2014 M. Bayu Wibisono.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Manipulasi Tree.
Tree.
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Parts of a Tree.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
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.
Algoritma dan Struktur Data
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)
Review Struktur Data Nisa’ul Hafidhoh, MT.
Transcript presentasi:

Struktur Data Tree Eka Rahayu S. (2 Agustus 2011)

Topik Bahasan Struktur data TREE Operasi dalam TREE Rekursi (untuk kepentingan TREE)

Tree Root 8 6 10 12 7 4 11 3 1 14 15 13 19 20 18 17 21 22 Node/ Vertex/ Point Edge/ Branch / Line 4 8 6 10 12 7 4 11 3 1 14 15 13 19 20 18 17 21 22 Height Subtree Leaf Balanced Tree: Sebuah Tree dikatakan seimbang ketika rata-rata tinggi tiap subtree adalah sama

Binary Tree 8 6 10 12 7 4 11 Max: 2 cabang (cabang kiri dan cabang kanan) 8 6 10 12 7 4 11 Cabang kiri Untuk nilai yang lebih kecil Cabang kanan Untuk nilai yang lebih besar atau sama dengan

Jenis Tree yang Lain Termasuk dalam golongan  n-ary Tree Binary Tree (max 2 cabang) Ternary Tree (max 3 cabang) Binary Search Tree Red Black Tree (ada warna pada tiap node) AA-Tree (penyederhanaan RB-Tree) AVL Tree (Adelson-Velskii dan Landis) Multiway Tree B-Tree

Implementasi Tree dalam Linked List Head 1 2 5 6 8 10 4 3 7 9

Nyicil: mari kita buat struktur data tree dengan [double] linked list

Operasi dalam Tree Insert (menambahkan nilai) Traverse (menelusuri tiap node tree) Search (mencari suatu nilai) Delete (menghapus nilai) Sumber: http://en.wikipedia.org/wiki/Binary_tree

[1] Proses Insert Jika root masih kosong Node baru adalah root Jika tidak (root sudah terbentuk) Cari posisi yang masih kosong Jika LEBIH KECIL, cari posisi kiri Jika LEBIH BESAR, cari posisi kanan Node baru menempati posisi kosong tersebut

.: insert :. Perintah: INSERT  7 INSERT  5 INSERT  6 Cek, apakah node baru lebih KECIL dari yang ditunjuk saat ini? Jika iya, maka telusuri sisi KIRInya. Ternyata root sudah terisi. Maka cari posisi kosong untuk node baru. Cek kembali, apakah root masih kosong? Ulangi kembali: Cek, apakah node baru lebih KECIL dari yang ditunjuk saat ini? Jika iya, maka telusuri sisi KIRInya. Jika ternyata node baru lebih BESAR dari node yang ditunjuk saat ini, maka telusuri KANAN nya. Begitu terus selanjutnya untuk setiap kali proses insert.... Ternyata posisi saat ini sudah terisi, Sehingga tidak bisa diisi node baru. Maka, harus dilakukan penelusuran kembali. Kebetulan, kanannya masih kosong. Maka, tambahkan node baru ke cabang kanan. Kebetulan, cabang kirinya masih kosong, maka node baru ditambahkan pada cabang kirinya. Ternyata root sudah ada isinya. Maka, cari posisi kosong untuk node baru. Cek apakah root nya masih kosong? Maka, jadikan node baru sebagai root. Kondisi awal, root masih kosong. Jika node baru lebih KECIL dari node yang ditunjuk, maka telusuri cabang kirinya. Perintah: INSERT  7 INSERT  5 INSERT  6 root 7 7 6 7 5 5

Cobalah! Insert 9 Insert 15 Insert 5 Insert 7 Insert 10 Insert 19 Bagaimanakah bentuk TREE nya?

Nyicil: Coba lengkapi Tree yang tadi kita buat dengan procedure insert!

[2] Proses Traverse Breadth First Search (BFS) Pencarian yang melebar (pada setiap level) Memanfaatkan Queue Depth First Search (DFS) Pencarian yang mendalam Dilakukan secara recursive Ada 3 jenis: Pre-order traversal In-order traversal Post-order traversal

Breadth First Search (breadth = melebar) Queue untuk pengaksesan: Dari 10, telusuri semua childnya FIFO: maka DELETE 6 Lanjutkan: expand semua child 6 DELETE lagi 1 node, yaitu 10 Dan seterusnya.... Expand semua child dari 8 DELETE dari queue (dapat 8) Pertama, expand dari root 8 6 10 12 7 4 11 3 1 14 15 13 19 20 18 17 21 22 8 6 10 15 13 4 7 3 1 Intinya.... Setiap proses dilakukan ke kanan. Menelusuri semua child dalam satu level, dilanjutkan dengan level dibawahnya.

Depth First Search (depth = kedalam) 10 6 12 11 7 4 13 14 10 Ingat kembali bahwa TREE termasuk dalam struktur data yang ORDERed. 6 6 4 4 7 3 5 1 3 3 5 8 5 null null null 1 1 Proses dilakukan dengan recursive: Menelusuri cabang kiri hingga null Setelah itu baru menelusuri cabang kanannya Dari cabang kanan, ditelusuri lagi cabang kirinya dst null null

Ingat kembali... Apa perbedaan BFS dan DFS?

x-Order Traversal In-Order Traversal subtree kiri – root – subtree kanan Pre-Order Traversal root – subtree kiri – subtree kanan Post-Order Traversal subtree kiri – subtree kanan – root

Contoh! 10 6 19 21 5 17 15 IN : 5, 6, 10, 15, 17, 19, 21 (subtree kiri saat di kanan, subtree kanan saat di kiri) PRE : 10, 6, 5, 19, 15, 17, 21 (saat penelusur ada di kiri) POST : 5, 6, 17, 15, 21, 19, 10 (saat penelusur ada di kanan)

[3] Proses Search Dilakukan dengan memafaatkan proses Traverse (saat pertama kali sebuah node berwarna abu-abu  pada contoh di slide sebelumnya)

Nah.... Masalahnya, masihkah Anda ingat bagaimana Recursive?

[4] Proses Delete Cari node yang akan dihapus Jika node tersebut tidak punya child, langsung hapus Namun jika punya satu child, arahkan pointer parent ke child dari node yang akan dihapus Namun jika node yang akan dihapus punya dua anak: Opsi 1: cari child paling kanan dari subtree kiri, sebut sebagai replacer Opsi 2: cari child paling kiri dari subtree kanan, sebut sebagai replacer Ganti node yang akan dihapus dengan replacer