By : Fitroh Amaluddin & Galih Wasis W.

Slides:



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

STRUKTUR DATA (10) tree manipulation
JULIAN ADINATA PAUL JHONATAN UKEU PUTRI ROMLI MAULANA
Binary Tree Traversal.
Pertemuan 9 STRUKTUR POHON (TREE) IMAM SIBRO MALISI NIM :
Algoritma dan Struktur Data
Tree.
Tree Yuliana S.
Binary Tree Rangga Juniansyah.
Operasi pada pohon biner
Penelusuran Bab 7 Pohon Biner 219.
Algoritma dan Struktur Data
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.
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
Red-Black Trees.
Pertemuan 10 Binary Search Tree
Organisasi Berkas Sekuensial Berindeks
Binary Tree.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Binary 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)
Binary Tree Rangga Juniansyah.
Pohon dan Pohon Biner Anifuddin Azis.
PohonBiner Rachmansyah, S.Kom..
BAB 5 TREE (Pohon) 179.
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).
Operasi/Kunjungan Pohon Biner
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.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Parts of a Tree.
Algoritma dan Struktur Data
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Penelusuran Binary Tree
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
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
IT234 Algoritma dan Struktur Data
TREE Oleh : Neny silvia Nurhidayah Afny wilujeng Setyorini
5 11/18/2018.
Review Struktur Data Nisa’ul Hafidhoh, MT.
Transcript presentasi:

By : Fitroh Amaluddin & Galih Wasis W. Binary Trees By : Fitroh Amaluddin & Galih Wasis W. Kind of Binary Tree Binary Tree Operation Un/Balance Tree Order Tree

DEFINISI Tree adalah sebuah struktur data yang secara bentuk menyerupai sebuah pohon, yang terdiri dari serangkaian node (simpul) yang saling berhubungan. Node-node tersebut dihubungkan oleh sebuah vektor. Setiap node dapat memiliki 0 atau lebih node anak (child). Sebuah node yang memiliki node anak disebut node induk (parent). Sebuah node anak hanya memiliki satu node induk.

DEFINISI Binary Trees adalah sebuah tree yang pada masing-masing simpulnya hanya dapat memiliki maksimum 2 (dua) simpul anak. Tidak boleh lebih. P C C

Istilah Umum Root : satu-satunya node khusus dalam tree yang tak punya node diatas. Parent : node satu level di atas suatu node. Child : node satu level di bawah suatu node. Size : banyaknya node dalam suatu tree. Level : banyaknya tingkatan dalam suatu tree. Leaf : node-node dalam tree yang tak memiliki node dibawah.

Full Binary Tree Full Binary Tree (Pohon Biner Penuh) adalah pohon biner yang setiap nodenya pasti memiliki 0 atau 2 node anak.

Complete Binary Tree Complete Binary Tree mirip dengan Full Binary Tree, namun tiap subtree boleh memiliki panjang path yang berbeda. Node kecuali leaf memiliki 0 atau 2 child.

Skewed Binary Tree yaitu Binary Tree yang semua nodenya (kecuali leaf) hanya memiliki satu child.

Almost Complete Binary Tree Almost Complete Binary Tree (Pohon Biner Hampir Lengkap) adalah pohon biner yang setiap nodenya dapat memiliki 0 node anak, atau memiliki kiri, atau memiliki kanan.

An unbalanced binary tree f g h i j A balanced binary tree a b c d e f g h i j An unbalanced binary tree

Binary Insert Binary Insert Tree adalah Binary Tree dengan sifat bahwa semua left child harus lebih kecil daripada right child dan parentnya. Juga semua right child harus lebih besar dari left child serta parentnya.

Binary Insert

Binary Search Binary Search Tree adalah Binary Tree dengan sifat bahwa semua left child harus lebih kecil daripada right child dan parentnya. Juga semua right child harus lebih besar dari left child serta parentnya.

Binary Delete Binary Delete Tree adalah Binary Tree dengan sifat jika proses delete berpengaruh pada posisi node tersebut dilakukan rotasi supaya tetap menjadi Binary Search Tree. Contoh : - Jika node parent dihapus, maka right child yang yang tidak memiliki left child,maka right child tersebut akan di pindah ke atas sebagai parent. - Jika right child mempunyai left child, maka left childnya akan pindah sebagai parent dari node yang berada diatasnya.

Order Tree Ada 3 urutan dasar yang dapat digunakan untuk mengunjungi pohon, yaitu : PreOrder InOrder PostOrder

PostOrder : * + a / b c – d * e f InOrder : a + b / c * d – e * f PreOrder : a b c / + d e f * - *

Listing Program void BinaPokok(POKOK **T) { *T=NULL; } bool PokokKosong(POKOK *T) { return ((bool)(T==NULL)); void TambahNod(NOD **p, char item) { NOD *n; n=NodBaru(item); *p=n; void preOrder(POKOK *T) if(!PokokKosong(T)) { cout<<" "<<T->data; preOrder(T->left); preOrder(T->right); #include<iostream.h> #include<conio.h> #include<malloc.h> #define nil NULL struct nod { struct nod*left; char data; struct nod *right; }; typedef struct nod NOD; typedef NOD POKOK; NOD *NodBaru(char item) { NOD *n; n=(NOD *)malloc(sizeof(NOD)); if(n != NULL) { n->data=item; n->left=NULL; n->right=NULL; }return n; } // Read More

void inOrder(POKOK *T) { if(!PokokKosong(T)) { inOrder(T->left); cout<<" "<<T->data; inOrder(T->right); } void postOrder(POKOK *T) { postOrder(T->left); postOrder(T->right); cout<<" "<<T->data; // Read More //Program utama int main() { POKOK *tampil; char buah; BinaPokok(&tampil); TambahNod(&tampil, buah='M'); TambahNod(&tampil->left, buah='E'); TambahNod(&tampil->left->right, buah='I'); TambahNod(&tampil->right, buah='L'); TambahNod(&tampil->right->right, buah='O'); TambahNod(&tampil->right->right->left, buah='D'); cout<<"Tampilan secara PreOrder : "; preOrder(tampil); cout<<endl; cout<<"Tampilan secara InOrder : "; inOrder(tampil); cout<<endl; cout<<"Tampilan secara PostOrder : "; postOrder(tampil); cout<<endl; getch(); return 0; } // Read More

M O I L E D

Terima Kasih

void preOrder(POKOK *T) { if(!PokokKosong(T)) { cout<<" "<<T->data; preOrder(T->left); preOrder(T->right); } Kunjungan Pre-Order. 1. Cetak isi (data) node yang sedang dikunjungi 2. Kunjungi kiri node tersebut, - Jika kiri tidak kosong (NOT NULL) mulai lagi dari langkah pertama, terapkan untuk kiri tersebut. - Jika kiri kosong (NULL), lanjut ke langkah ketiga. 3. Kunjungi kanan node tersebut, Jika kanan tidak kosong (NOT NULL) mulai lagi dari langkah pertama, terapkan untuk kanan tersebut. Jika kanan kosong (NULL), proses untuk node ini selesai, tuntaskan proses yang sama untuk node yang dikunjungi sebelumnya. Program Pre // Back

void inOrder(POKOK *T) { if(!PokokKosong(T)) { inOrder(T->left); cout<<" "<<T->data; inOrder(T->right); } Kunjungan In-Order. 1. Kunjungi kiri node tersebut, - Jika kiri bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untuk kiri tersebut. - Jika kiri kosong (NULL), lanjut ke langkah kedua. 2. Cetak isi (data) node yang sedang dikunjungi 3. Kunjungi kanan node tersebut, - Jika kanan bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untuk kanan tersebut. - Jika kanan kosong (NULL), proses untuk node ini selesai, tuntaskan proses yang sama untuk node yang dikunjungi sebelumnya. Program Pre // Back

void postOrder(POKOK *T) { if(!PokokKosong(T)) { postOrder(T->left); postOrder(T->right); cout<<" "<<T->data; } Kunjungan Post-Order. Kunjungan pre-order dilakukan mulai dari akar pohon, dengan urutan: 1. Kunjungi kiri node tersebut, - Jika kiri bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untuk kiri tersebut. - Jika kiri kosong (NULL), lanjut ke langkah kedua. 2. Kunjungi kanan node tersebut, - Jika kanan bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untuk kanan tersebut. - Jika kanan kosong (NULL), lanjut ke langkah ketiga. 3. Cetak isi (data) node yang sedang dikunjungi. Proses untuk node ini selesai, tuntaskan proses yang sama untuk node yang dikunjungi sebelumnya. Program Pre // Back

Post Order Kunjungan pre-order dilakukan mulai root pohon, dengan urutan: Kunjungi kiri node tersebut, Jika kiri bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untuk kiri tersebut. ¬Jika kiri kosong (NULL), lanjut ke langkah kedua. Kunjungi kanan node tersebut, Jika kanan bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untuk kanan tersebut. Kode Program Lengkap Berikut ini kode program keseluruhan, termasuk menu tampilan, di mana di dalamnya terdapat Deklarasi Tree, Inisialisasi Tree, Penambahan Node, dan Pembacaaan serta Menampilkan Node dengan 3 macam kunjungan. Kode ditulis dengan C++ 3.00.

In Order Kunjungi kiri node tersebut, - Jika kiri bukan kosong (tidak NULL) mulai lagi dari langkah pertama,terapkan untuk kiri tersebut. -Jika kiri kosong (NULL), lanjut ke langkah kedua. Cetak isi (data) node yang sedang dikunjungi Kunjungi kanan node tersebut, - Jika kanan bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untuk kanan tersebut. - Jika kanan kosong (NULL), proses untuk node ini selesai, tuntaskan proses yang sama untuk node yang dikunjungi sebelumnya.

Pre Order Kunjungan pre-order dilakukan mulai dari akar pohon, dengan urutan: Cetak isi (data) node yang sedang dikunjungi Kunjungi kiri node tersebut, Jika kiri bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untuk kiri tersebut. ¬Jika kiri kosong (NULL), lanjut ke langkah ketiga. Kunjungi kanan node tersebut, Jika kanan bukan kosong (tidak NULL) mulai lagi dari langkah pertama, terapkan untuk kanan tersebut. Jika kanan kosong (NULL), proses untuk node ini selesai, tuntaskan