Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat hierarkis (hubungan one to many) antara elemen-elemen. Tree bisa didefinisikan sebagai kumpulan simpul/node dengan elemen khusus yang disebut root atau akar.
Cara penggunaan Tree :
Cara penggunaan Tree :
- notasi kurung
- diagram venn
- notasi tingkat
- notasi garis
- binnary tree
- full binnary tree

binnary tree ini tiap nodenya (kecuali leaf) memiliki 2 child dan tiap subtree harus mempunyai panjang path yang sama.
- complete binnary tree

mirip dengan full binnary tree, tetapi tiap subtree boleh memiliki panjang path yang berbeda.
- skewed binnary tree

binnary tree yang semua nodenya (kecuali leaf) hanya memiliki 1 child.
- implementasi binnary tree
Tambahan:
Dalam Struktur Data ,Tree adalah salah satu struktur data yang berbentuk 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 di-
sebut node induk(parent).
Sebuah node anak hanya memiliki satu node induk. Sesuai konvensi ilmu komputer,Tree bertumbuh ke bawah, tidak seperti pohon di dunia nyata yang tumbuh ke atas.
Dengan demikian node anak akan digambarkan berada di bawah node induknya. Node yang berada di pangkal tree disebut node root(akar), sedangkan node yang berada paling ujung pada piramida tree disebut node leaf (daun).
Binary Tree (Pohon Biner)
Dalam mata kuliah struktur data, secara khusus akan dipelajari mengenai pohon biner. Pohon biner adalah sebuah tree yang masing-masing simpulnya hanya dapat memiliki maksimum 2 (dua) simpul anak Tidak boleh lebih.Pada pohon biner, umumnya kedua node anak disebut dengan posisinya, yaitu kiri dan kanan.
Beberapa istilah pada pohon biner:
- Size(ukuran): jumlah total node yang ada pada pohon biner.
- Depth (kedalaman): panjang jalur yang menghubungkan sebuah node sampai ke node anaknya yang paling ujung (leaf). Depth biasa juga disebut height. Full Binary Tree(Pohon Biner Penuh)adalah pohon biner yang setiap nodenya memiliki 0 atau 2 node anak.
Perfect Binary Tree
(Pohon Biner Sempurna) adalah pohon biner yang semua node leafnya berada pada kedalaman yang samadari node root. Juga disebut sebagai Complete Binary Tree (Pohon Biner Lengkap).
Almost Complete Binary Tree
(Pohon Biner Hampir Lengkap)adalah pohon biner yang setiap nodenyadapat memiliki 0 node anak, atau memiliki kiri, atau jika memiliki kanan harus memiliki kiri, tidak boleh memiliki kanan saja.
Implementasi dalam pemrograman, dalam pokok bahasan ini akan di bicarakan untuk pohon biner saja. Asumsi awal adalah data yang hendak dimasukkan kedalam node, bertipe data integer.
Contoh program TREE :
#include "iostream.h" #include "string.h" #include "conio.h" struct simpulpohon{ simpulpohon *induk; simpulpohon *kiri; simpulpohon *kanan; char data;}; class pohonbiner{ private: simpulpohon *akar; int tambah(simpulpohon *orangtua, simpulpohon *baru); void tampil(simpulpohon *simpul); public: pohonbiner(); int tambah(char data); void tampil(); }; void main() { clrscr(); char data[] = "CARKDUPBENXZS"; pohonbiner pohon; for (int i = 0; i < strlen(data); i++) pohon.tambah(data[i]); cout<<"Data ke Pohon Biner : "simpul->kanan = NULL; simpul->induk = NULL; simpul->data = data; if (akar == NULL) { akar = simpul; return(1); } else return(tambah(akar,simpul)); } int pohonbiner::tambah(simpulpohon *orangtua, simpulpohon *baru) { if (baru->data ==orangtua->data) { delete baru; return(0); } else if (baru->data <>data) { if (!orangtua->kiri) { orangtua->kiri = baru; baru->induk = orangtua; } else return(tambah(orangtua->kiri,baru)); } else { if (!orangtua->kanan) { orangtua->kanan = baru; baru->induk = orangtua; } else return(tambah(orangtua->kanan,baru)); } return(1);} void pohonbiner::tampil() { tampil(akar); cout kiri); cout if (simpul->kanan) tampil(simpul->kanan); }
0 comments:
Post a Comment