Pertemuan 10 Binary Search Tree

Slides:



Advertisements
Presentasi serupa
STRUKTUR DATA (10) tree manipulation
Advertisements

Binary Trees adalah parent
Pertemuan 2 STRUKTUR DATA LINKED LIST
By : Fitroh Amaluddin & Galih Wasis W.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Implementasi Binary Tree
Tree.
Tree Yuliana S.
Binary Tree Rangga Juniansyah.
Operasi pada pohon biner
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Z Bekti - Rita - Sevenhot Struktur Data & Algoritma 2009.
Binary Search Tree 2007/2008 – Ganjil – Minggu 9.
Pertemuan ketujuh Struktur data st3telkom.ac.id
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.
Algoritma dan Struktur Data
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
1 Pertemuan 26 Teknik Hashing Matakuliah: T0016/Algoritma dan Pemrograman Tahun: 2005 Versi: versi 2.
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Red-Black Trees.
Pertemuan 10 DIVIDE And CONQUER Lanjutan ….
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Pertemuan 9 Stack dengan Linked-list
Pertemuan 15 Red-Black Tree (RBT)
1 Pertemuan 17 Heaps Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
1 Pertemuan 7 Queue dengan Linked-list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
1 Pertemuan 9 Integral Matakuliah: R0262/Matematika Tahun: September 2005 Versi: 1/1.
1 Pertemuan 7 Diferensial Matakuliah: R0262/Matematika Tahun: September 2005 Versi: 1/1.
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.
Menggambar Tree wijanarto.
Defri Kurniawan POHON DAN POHON BINER Defri Kurniawan
Struktur Data Binary Search Tree (BST)
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Manipulasi Tree.
TREE KELOMPOK 7 HUSNATUL WILDA ( ) MISRIANA ( )
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
STRUKTUR DATA Tree (Struktur Pohon).
Tree (POHON).
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.
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Algoritma dan Struktur Data
Pertemuan 6 Queue dengan Array
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)
IT234 Algoritma dan Struktur Data
Tahun : <<2005>> Versi : <<1/2>>
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
Binary Search Tree (BST)
Transcript presentasi:

Pertemuan 10 Binary Search Tree Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005 Pertemuan 10 Binary Search Tree

Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : mendemonstrasikan operasi pada Binary Search Tree(TIK-08). Menerapkan Binary Search Tree pada program aplikasi komputer (TIK-08).

Karakteristik Operasi Representasi Implementasi Outline Materi Insert Delete Update Representasi Implementasi

Karakteristik Binary Search Tree (BST) adalah Binary Tree yang terurut, dengan ketentuan : semua LEFT CHILD harus lebih kecil dari PARENT dan RIGHT CHILD. semua RIGHT CHILD harus lebih besar dari PARENT dan LEFT CHILD. Target NODE : Node yang diinginkan/dicari Keuntungan : Searching/Pencarian Target Node menjadi lebih efisien dan cepat. Contoh : 54 30 70 20 35 60 65 Binary Search Tree

Operasi Semua operasi pd Binary Tree bisa diimplementasikan langsung pd BST,kecuali: INSERT() UPDATE() DELETEKEY() Untuk ketiga operasi tsb perlu dilakukan modifikasi terhadap posisi node sehingga BST tetap terurut.

Insert Langkah Contoh : Pencarian lokasi utk node yg akan diinsert (baru) selalu dimulai dr ROOT. Jika node baru < ROOT,maka insert pd LEFT SUBTREE. Jika node baru > ROOT,maka insert pd RIGHT SUBTREE. Contoh : Insert(54) Insert(70) Insert(60) 54 54 54 70 70 60

Delete Jika yang dihapus adalah LEAF maka tidak perlu dilakukan modifikasi terhadap lokasi. Contoh : Delete(65) Sesudah didelete Sebelum didelete 54 54 30 70 30 70 20 35 60 20 35 60 65

Delete(2) Jika yang dihapus adalah NODE yang hanya memiliki 1 child, maka child tersebut langsung menggantikan posisi dari parentnya.. Contoh : Delete(60) Sesudah didelete Sebelum didelete 54 54 30 70 30 70 20 35 65 20 35 60 65

Delete (3) Jika yang dihapus adalah NODE dengan 2 children (2 SUBTREE), maka node yang diambil untuk menggantikan posisi node yang dihapus adalah : berasal dari LEFT SUBTREE, yang diambil adalah node yang paling kanan (yang mempunyai nilai terbesar). atau dari RIGHT SUBTREE, yang diambil adalah node yang paling kiri (yang mempunyai nilai terkecil). Contoh : Delete(54) Right SubTree Left SubTree Sebelum didelete 60 35 54 30 70 30 70 30 70 20 35 65 20 60 20 35 60 65 65

Update Update terhadap suatu node akan mempengaruhi lokasi node tersebut setelah diupdate. Bila node tersebut setelah diupdate menimbulkan Tree yang bukan BST, maka harus diregenerate Tree tersebut. Pendekatan yang lebih sederhana untuk menyelesaikan operasi UPDATE adalah dengan penggabungan antara operasi DELETE dengan INSERT. Contoh : UPDATE node 70 dengan node 80 Sebelum UPDATE Sesudah DELETE Sesudah INSERT 54 54 54 30 70 30 65 30 65 20 35 60 20 35 65 20 35 65 80 65

Representasi struct node { Key_Type Key; struct node *Left; Elemen_Type Data; struct node *Left; struct node *Right; struct node *Parent; }; Parent Key Data Left Right Parent Parent Key Data Key Data Left Right Left Right NULL NULL NULL Parent Key Data Left Right NULL NULL

Implementasi #include <stdio.h> #include <stdlib.h> #define compLT(a,b) (a < b) #define compEQ(a,b) (a == b) typedef enum { STATUS_OK, STATUS_MEM_EXHAUSTED, STATUS_DUPLICATE_KEY, STATUS_KEY_NOT_FOUND } statusEnum; typedef int keyType; typedef int ElmDataType; typedef struct nodeTag { struct nodeTag *left; struct nodeTag *right; struct nodeTag *parent; keyType key; ElmDataType ElmData; } nodeType; nodeType *root = NULL; Dikutip dari : http://ciips.ee.uwa.edu.au/~morris/Year2/PLDS210/niemann/s_man.htm

Implementasi(2) statusEnum insert(keyType key, ElmDataType *ElmData) { nodeType *x, *current, *parent; /* find future parent */ current = root; parent = 0; while (current) { if (compEQ(key, current->key)) return STATUS_DUPLICATE_KEY; parent = current; current = compLT(key, current->key) ? current->left : current->right; } /* setup new node */ if ((x = malloc (sizeof(*x))) == 0) { return STATUS_MEM_EXHAUSTED; } x->parent = parent; x->left = NULL; x->right = NULL; x->key = key; x->ElmData = *ElmData; /* insert x in tree */ if(parent) if(compLT(x->key, parent->key)) parent->left = x; else parent->right = x; else root = x; return STATUS_OK; }

Selesai