Binary Search Tree 2007/2008 – Ganjil – Minggu 9.

Slides:



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

STRUKTUR DATA (10) tree manipulation
Binary Trees adalah parent
LINKED LIST.
By : Fitroh Amaluddin & Galih Wasis W.
RED BLACK TREE INSERTION
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Implementasi Binary Tree
SLIDE OTOMATIS PINDAH DALAM WAKTU 4-5 MENIT. A:kiriB:kanan Deklarasikan sebuah variabel dengan nama ‘isi’ yang mempunyai type array of double dengan ukuran.
Tree.
Tree Yuliana S.
Binary Tree Rangga Juniansyah.
Operasi pada pohon biner
Algoritma dan Struktur Data
Struktur Data List Linear : Linked List (Double Linkedlist)
Algoritma dan Struktur Data
Z Bekti - Rita - Sevenhot Struktur Data & Algoritma 2009.
ADT Tree 2007/2008 – Ganjil – Minggu 8.
Implementasi ADT: Linked - List
Linear Data Structures (Stack)
SLL.
Tenia Wahyuningrum, S.Kom. MT
Struktur Data List Linear : Linked List (Single Linkedlist)
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
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.
Algoritma dan Struktur Data
Pertemuan 10 Binary Search Tree
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).
Binary Tree.
Binary Tree.
Menggambar Tree wijanarto.
Struktur Data Binary Search Tree (BST)
Pohon dan Pohon Biner Anifuddin Azis.
Manipulasi Tree.
TREE KELOMPOK 7 HUSNATUL WILDA ( ) MISRIANA ( )
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
Algoritma dan Struktur Data
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
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)
IT234 Algoritma dan Struktur Data
TREE Oleh : Neny silvia Nurhidayah Afny wilujeng Setyorini
5 11/18/2018.
Binary Search Tree (BST)
Transcript presentasi:

Binary Search Tree 2007/2008 – Ganjil – Minggu 9

Tujuan Memahami sifat dari Binary Search Tree (BST)‏ Memahami operasi-operasi pada BST Memahami kelebihan dan kekurangan dari BST

Outline Properties of Binary Search Tree (BST)‏ Operation Insert find remove

Properties of Binary Search Tree Untuk setiap node X pada tree, nilai elemen pada subtree sebelah kiri selalu lebih kecil dari elemen node X dan nilai elemen pada subtree sebelah kanan selalu lebih besar dari elemen node X. Jadi object elemen harus comparable. X <X >X

Binary Search Tree 7 9 2 1 5 6 3

Binary Search Tree 3 3 1 1 2 2 1 3 3 2 1 2 2 1 3

Basic Operations insert findMin and findMax remove cetak terurut

Print InOrder class BinaryNode { void printInOrder( )‏ { if( left != null )‏ left.printInOrder( ); // Left System.out.println( element ); // Node if( right != null )‏ right.printInOrder( ); // Right } class BinaryTree { public void printInOrder( )‏ if( root != null )‏ root.printInOrder( );

Insertion Penyisipan sebuah elemen baru dalam binary search tree, elemen tersebut pasti akan menjadi leaf 10 2 3 15 1 5 6 12 14

Insertion: algorithm Menambah elemen X pada binary search tree: mulai dari root. Jika X lebih kecil dari root, maka X harus diletakkan pada sub-tree sebelah kiri. jika X lebih besar dari root, then X harus diletakkan pada sub-tree sebelah kanan. Ingat bahwa: sebuah sub tree adalah juga sebuah tree. Maka, proses penambahan elemen pada sub tree adalah sama dengan penambahan pada seluruh tree. (melalui root tadi) Apa hubungannya? permasalahan ini cocok diselesaikan secara rekursif.

Insertion BinaryNode insert(int x, BinaryNode t) { if (t == null) { t = new BinaryNode (x, null, null); } else if (x < t.element) { t.left = insert (x, t.left); } else if (x > t.element) { t.right = insert (x, t.right); } else { throw new DuplicateItem(“exception”); } return t;

FindMin Mencari node yang memiliki nilai terkecil. Algorithm: Code: ke kiri terus sampai buntu….:)‏ Code: BinaryNode findMin (BinaryNode t) { if (t == null) throw exception; while (t.left != null) { t = t.left; } return t;

FindMax Mencari node yang memiliki nilai terbesar Algorithm? Code?

Find Diberikan sebuah nilai yang harus dicari dalam sebuah BST. Jika ada elemen tersebut, return node tersebut. Jika tidak ada, return null. Algorithm? Code? 7 2 3 9 1 5 6

Remove 8 4 5 12 1 6 3 4 6 5

Remove jika node adalah leaf (tidak punya anak), langsung saja dihapus. jika node punya satu anak: node parent menjadikan anak dari node yang dihapus (cucu) sebagian anaknya. (mem-by-pass node yang dihapus).

Removing 6 8 12 4 6 1 3 5

After 6 removed 8 12 4 6 1 3 5

Remove (lanj.)‏ Bagaimana bila node punya dua anak? hapus dan gantikan posisi node tersebut dengan node terkecil dari sub tree sebelah kanan. atau, hapus dan gantikan posisi node tersebut dengan node terbesar dari sub tree sebelah kiri. Hal ini membutuhkan proses: removeMin, atau removeMax

Removing 2 7 9 2 1 5 3 4

After 2 deleted 7 2 3 9 1 5 4 2 3 X

Removing Root 7 2 3 12 1 5 4 10 14 9 11 9

removeMin BinaryNode removeMin(BinaryNode t) { if (t == null) throw exception; if (t.left != null) { t.left = removeMin (t.left); } else { t = t.right; } return t;

Remove BinaryNode remove(int x, BinaryNode t) { if (t == null) throw exception; if (x < t.element) { t.left = remove(x, t.left); } else if (x > t.element) { t.right = remove(x, t.right); } else if (t.left != null && t.right != null) { t.element = findMin(t.right).element; t.right = removeMin(t.right); } else { t = (t.left != null) ? t.left : t.right; } return t;

removeMax code?

Find k-th element X X X SL SR SL SR SL SR k < SL + 1 k == SL + 1

Find k-th element BinaryNode findKth(int k, BinaryNode t) { if (t == null) throw exception; int leftSize = (t.left != null) ? t.left.size : 0; if (k <= leftSize ) { return findKth (k, t.left); } else if (k == leftSize + 1) { return t; } else { return findKth ( k - leftSize - 1, t.right); }

Analysis Runnning time: Worst case: O(n)‏ insert? Find min? remove?

Rangkuman Binary Search Tree menjamin urutan elemen pada tree. Tiap node harus comparable Semua operasi membutuhkan O(log n) - average case, saat tree relatif balance. Semua operasi membutuhkan O(n) - worst case, tinggi dari tree sama dengan jumlah node.

Selanjutnya: AVL tree