Pengertian singkat Binary Tree

Oke pertemuan ini gua akan menjelaskan sebagian kecil tentang binary tree. Pasti penasarankan? Hehe

Oke, Binary tree tu apasi ?

Binary tree
adalah sebuah pohon struktur data dimana setiap simpul memiliki paling banyak 2 anak, secara khusus anaknya dinamakan dengan kiri dan kanan. Dan binary tree sendiri ada 3 jenis yaitu : Full Binary Tree, Complete Binary Tree, Skewed Binary Tree

1.       Full binary tree
Adalah binary tree yang tiap nodenya (kecuali leaf) memiliki dua anak dan tiap subtree harus mempunyai Panjang path yang sama.

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

3.       Skewed Binary Tree
Adalah Binary tree yang semua nodenya (kecuali leaf) hanya memiliki satu anak.
Oke kita lanjut ke Binary search tree

BINARY SEARCH TREE
Merupakan suatu konsep penyimpanan data dimana data disimpan melalui tree yang setiap node memiliki maksimal 2 anak node.

Aturan di Binary Search Tree
1.       Setiap anak node sebelah kiri harus lebih kecil nilainya daripada root nodenya.
2.       Setiap anak node sebelah kanan harus lebih besar nilainya daripada root nodenya
Dan berikut insert dari binary search tree :




Berikut programnya di bahasa c



#include<stdio.h>
#include<stdlib.h>

typedef struct BST
{
                int data;
                struct BST *left;
                struct BST *right;
}node;

node *create();
void insert(node *,node *);
void preorder(node *);

int main()
{
                char ch;
                node *root=NULL,*temp;
               
                do
                {
                                temp=create();
                                if(root==NULL)
                                                root=temp;
                                else       
                                                insert(root,temp);
                                               
                                printf("nDo you want to enter more(y/n)?");
                                getchar();
                                scanf("%c",&ch);
                }while(ch=='y'|ch=='Y');
               
                printf("nPreorder Traversal: ");
                preorder(root);
                return 0;
}

node *create()
{
                node *temp;
                printf("nEnter data:");
                temp=(node*)malloc(sizeof(node));
                scanf("%d",&temp->data);
                temp->left=temp->right=NULL;
                return temp;
}

void insert(node *root,node *temp)
{
                if(temp->data<root->data)
                {
                                if(root->left!=NULL)
                                                insert(root->left,temp);
                                else
                                                root->left=temp;
                }
               
                if(temp->data>root->data)
                {
                                if(root->right!=NULL)
                                                insert(root->right,temp);
                                else
                                                root->right=temp;
                }
}

void preorder(node *root)
{
                if(root!=NULL)
                {
                                printf("%d ",root->data);
                                preorder(root->left);
                                preorder(root->right);
                }
}              

dan ini output nya



segitu dulu ajaa materi seputar binary tree
nanti kedepannya kita buat blog blog yang lebih yahudd ! dan semoga bisa menjadi referensi yaaakk!

referensi :
youtube.com




Komentar