Algoritma dan Struktur Data

Slides:



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

STRUKTUR DATA (10) tree manipulation
BAB 9 TREE Tujuan Instruksional Umum:
By : Fitroh Amaluddin & Galih Wasis W.
RED BLACK TREE INSERTION
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Implementasi Binary Tree
Disadur dari Materi Kuliah: Annisa, Dept. Ilmu Komputer FMIPA IPB
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.
Algoritma dan Struktur Data
Pertemuan 7 PRIORITY QUEUE & HEAP
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Red-Black Trees.
Pertemuan 10 Binary Search Tree
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Pertemuan 15 Red-Black Tree (RBT)
Organisasi Berkas Sekuensial Berindeks
1 Pertemuan 12 B-Tree Matakuliah: T0534/Struktur Data Tahun: 2005 Versi: September 2005.
Binary Search Tree. Sebuah node di Binary Search Tree memiliki path yang unik dari root menurut aturan ordering – Sebuah Node, mempunyai subtree kiri.
Struktur Data Tree Eka Rahayu S. (2 Agustus 2011).
Menggambar Tree wijanarto.
TREE STRUCTURE (Struktur Pohon)
STRUKTUR DATA Chapt 6 : TREE Oleh : Yuli Praptomo PHS, S.Kom.
Struktur Data Binary Search Tree (BST)
Pohon dan Pohon Biner Anifuddin Azis.
Diagram Pohon (Tree Diagram)
Manipulasi Tree.
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.
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
TREE (POHON).
Parts of a Tree.
Algoritma dan Struktur Data
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tree (Pohon).
STRUKTUR DATA Nurdiansah PTIK 09.
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:

Algoritma dan Struktur Data AVL TREE Review BST

Apakah Binary Search Tree itu ? Pemakaian tree structure dalam proses pencarian (search) Sifat Binary Tree: Pada sebuah node x, elemen yang berada di LEFT sub-tree selalu lebih KECIL daripada x elemen yang berada di RIGHT sub-tree selalu lebih BESAR Atau SAMA DENGAN daripada x Binary Search Tree: proses pencarian (SEARCHING) berbasis binary tree

Example of a binary search tree

LATIHAN BST Coba simulasikan penambahan pada sebuah BST dengan urutan penambahan: 14, 16, 10, 8, 12, 4, 9, 1 8, 12, 4, 9, 1, 14, 16, 10

Proses Pencarian (contoh SUKSES) search(7) 7<13 7>5 7==7 Data yang dicari BERHASIL ditemukan 13→5 →7

LATIHAN BST 14 8 10 16 4 12 8 12 1 9 14 4 9 10 16 1

Algoritma dan Struktur Data AVL TREE

Tujuan Memahami variant dari Binary Search Tree yang balanced Binary Search Tree yang tidak balance dapat membuat seluruh operasi memiliki kompleksitas running time O(n) pada kondisi worst case.

AVL Trees Untuk setiap node dalam tree, ketinggian subtree di anak kiri dan subtree di anak kanan hanya berbeda maksimum 1. X X H H-2 H-1

AVL Trees 10 5 3 20 1 43 10 5 3 20 5 2 1 3

AVL Trees 12 8 16 4 10 14 2 6

Insertion pada AVL Tree Setelah insert 1 12 8 16 4 10 14 2 6 1

Insertion pada AVL Tree Untuk menjamin kondisi balance pada AVL tree, setelah penambahan sebuah node. jalur dari node baru tersebut hingga root di simpan dan di periksa kondisi balance pada tiap node-nya. Jika setelah penambahan, kondisi balance tidak terpenuhi pada node tertentu, maka lakukan salah satu rotasi berikut: Single rotation Double rotation

Kondisi tidak balance HP=HQ=HR k2 k1 k1 k2 R P P Q Q R Sebuah penambahan pada subtree: P (outside) - case 1 Q (inside) - case 2 Sebuah penambahan pada subtree: Q (inside) - case 3 R (outside) - case 4

Single Rotation (case 1)‏ HA=HB+1 HB=HC k2 k1 k1 k2 A C A B B C

Single Rotation (case 4)‏ HA=HB HC=HB+1 k2 k1 k1 k2 C A A B B C

Keterbatasan Single Rotation Single rotation tidak bisa digunakan untuk kasus 2 dan 3 (inside case)‏ k2 k1 k1 k2 R P P Q Q R HQ=HP+1 HP=HR

Double Rotation: Langkah C B C B A HA=HB=HC=HD

Double Rotation: Langkah C

Double Rotation k3 k2 k1 k1 k3 D k2 A B C D A B C HA=HB=HC=HD

Double Rotation k2 k1 k1 k3 k3 A k2 A B C D D B C HA=HB=HC=HD

Contoh penambahan 3 pada AVL tree 11 8 20 4 16 27 8 11 4 20 3 16 27 8

Contoh penambahan 5 pada AVL tree 4 11 8 20 5 16 27 11 8 20 4 16 27 8

Contoh Rotasi ke 2 8 11 5 20 4 16 27

AVL Trees: Latihan Coba simulasikan penambahan pada sebuah AVL dengan urutan penambahan: 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55 http://www.strille.net/works/media_technology_projects/avl-tree_2001/

Operasi: Remove pada AVL Tree Menghapus node pada AVL Tree sama dengan menghapus binary search tree procedure dengan perbedaan pada penanganan kondisi tidak balance. Penanganan kondisi tidak balance pada operasi menghapus node AVL tree, serupa dengan pada operasi penambahan. Mulai dari node yang diproses (dihapus) periksa seluruh node pada jalur yang menuju root (termasuk root) untuk menentukan node tidak balance yang pertama Terapkan single atau double rotation untuk menyeimbangkan tree. Bila Tree masih belum balance, ulangi lagi dari langkah 2.

Menghapus node X pada AVL Trees Deletion: Kasus 1: jika X adalah leaf, delete X Kasus 2: jika X punya 1 child, X digantikan oleh child tsb. Kasus 3: jika X punya 2 child, ganti X secara rekursif dengan predecessor-nya secara inorder Rebalancing

Delete 55 (Kasus 1)‏ 60 20 70 10 40 65 85 80 90 5 15 30 50 55

Delete 55 (Kasus 1)‏ 60 20 70 10 40 65 85 80 90 5 15 30 50 55

Delete 50 (Kasus 2)‏ 60 20 70 10 40 65 85 80 90 5 15 30 50 55

Delete 50 (Kasus 2)‏ 60 20 70 10 40 65 85 50 80 90 5 15 30 55

Delete 60 (Kasus 3)‏ 60 prev 20 70 10 40 65 85 80 90 5 15 30 50 55

Delete 60 (Kasus 3)‏ 55 20 70 10 40 65 85 80 90 5 15 30 50

Delete 55 (Kasus 3)‏ 55 prev 20 70 10 40 65 85 80 90 5 15 30 50

Delete 55 (Kasus 3)‏ 50 20 70 10 40 65 85 80 90 5 15 30

Delete 50 (Kasus 3)‏ 50 prev 20 70 10 40 65 85 80 90 5 15 30

Delete 50 (Kasus 3)‏ 40 20 70 10 30 65 85 80 90 5 15

Delete 40 (Kasus 3)‏ 40 prev 20 70 10 30 65 85 80 90 5 15

Delete 40 : Rebalancing 30 20 70 10 Kasus ? 65 85 80 90 5 15

Delete 40: setelah rebalancing 30 10 70 20 65 85 5 80 90 15 Single rotation is preferred!