Cara Membuat Binary Tree dengan Bahasa C
Pengertian Binary Tree
Sebuah struktur data yang berbentuk pohon dimana setiap simpul paling banyak memiliki dua anak. Secara khusus, anaknya diberi nama kiri dan kanan. Penggunaan pohon biner secara umum adalah pohon biner terurut, yang lainnya adalah pohon biner.
(Sumber : www.wikipedia.org)
Tree adalah
sebuah struktur linier, biasanya digunakan untuk menggambarkan hubungan yang
bersifat hirarkis antara elemen-elemen yang ada. Ada beberapa istilah dalam
tree ini, yang mana masing-masing istilah mempunyai arti dalam kaitannya
dengan hirarki antar elemen dalam tree tersebut, seperti sibling, descendant
dsb.
Dalam ilmu komputer,
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. 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.Selain itu, pembuatan tree menggunakan linked list sangat efisien bagi
pemrosesannya
Source Code untuk Binary Tree
// Nama Program : Bintree
#include <stdlib.h>
#include <stdio.h>
#define info(p) (p)->info
#define left(p) (p)->left
#define right(p) (p)->right
typedef struct treenode *data;
typedef struct treenode{
int info;
data right;
data left;
}node;
data root;
void insert(data *tree, int elem){
//Kamus
data item;
//Algoritma
item = (data) malloc (sizeof(node));
left (item) = right(item) = NULL;
info (item) = elem;
if(!(*tree)){
*tree = item;
return;
}
if(info(item) < info(*tree))
insert(&left(*tree),elem);
else if(info(item) > info(*tree))
insert(&right(*tree), elem);
}
//Buat prosedur inorder, preorder, postorder, main program
void inorder(data *tree){
if(*tree != NULL){
inorder(&left(*tree));
printf(" %d ", info(*tree));
inorder(&right(*tree));
}
}
void preorder(data *tree){
if(*tree != NULL){
printf(" %d ", info(*tree));
preorder(&left(*tree));
preorder(&right(*tree));
}
}
void postorder(data *tree){
if(*tree != NULL){
postorder(&left(*tree));
postorder(&right(*tree));
printf(" %d ", info(*tree));
}
}
//Program Utama
int main(){
insert (&root,2);
insert (&root,3);
insert (&root,1);
insert (&root,4);
printf("Inorder : ");
inorder(&root);
printf("\n");
printf("Preorder : ");
preorder(&root);
printf("\n");
printf("Postorder: ");
postorder(&root);
printf("\n");
getch();
return 0;
}
Sekian untuk postingan kali ini smeoga bermanfaat ya :D. Lihat juga postingan yang satu ini
0 comments:
Mohon untuk berkomentar yang sesuai dengan artikelnya, jangan taruh live link di artikel manapun di blog ini. Harus ada sumber atau beri link dari artikel yang kamu kopas dari blog ini bila ingin kopas