tulisan variabel yang berada di tengan merupakan info dari node tersebut dan lingkaran kecil yang berada di kanan dan kiri merupakan sebuah pointer yang menghubungkan ke anak atau child di bawahnya.
berikut adalah pseudecode dalam membuat algoritma binary search tree
untuk memperjelas algoritma binary tree berikut adalah sources code binary tree dalam bahasa c
#include "stdio.h"; #include "stdlib.h"; void input(); void preorder(tree); void inorder(tree); void postorder(tree ); void tampil(); typedef struct node tree; struct node{ char info; tree *kanan; tree *kiri; }; tree *baru; tree *root=NULL; tree *p,*q; void main() { input(); tampil(); } void input() { char kar,jwb; do{ fflush(stdin); printf("masukan karakter :"); scanf("%c",&kar); baru=(tree *)malloc(sizeof(tree)); if(baru==NULL) { printf("Gagal mengalokasikan"); exit(0); } else { baru->info=kar; baru->kanan=NULL; baru->kiri=NULL; } if(root==NULL) { root=baru; } else { q=root; p=root; while((q!=NULL)&&(baru->info!=p->info)) { p=q; if(baru->info>p->info) { q=p->kanan; } else { q=p->kiri; } } if(p->info!=baru->info) { if(p->info>baru->info) { p->kiri=baru; } else { p->kanan=baru; } } else {puts ("data yang anda masukan sudah ada");} } puts("\nada data lagi?"); scanf("\n%c",&jwb); }while((jwb=='y')||(jwb=='Y')); } void tampil() { printf("tampilan secara preorder :"); preorder(root); puts("\n"); printf("tampilan secara inorder :"); inorder(root); puts("\n"); printf("tampilan secara postorder :"); postorder(root); puts("\n"); } void preorder(tree *root) { if(root!=NULL) { printf("%c",root->info); preorder(root->kiri); preorder(root->kanan); } } void inorder(tree *root) { if(root!=NULL) { inorder(root->kiri); printf("%c",root->info); inorder(root->kanan); } } void postorder(tree *root) { if(root!=NULL) { postorder(root->kiri); postorder(root->kanan); printf("%c",root->info); } }
Posting Komentar