Binary Search Tree
Dimulai dari binary tree, apa itu binary tree? Binary tree adalah sekumpulan data diilustrasikan berbentuk akar pohon. Contohnya seperti berikut,
Binary tree selalu dimulai dari root/ bisa dibilang kepala dari binary tree yaitu dari ilustrasi angka 1.
Setiap angka memiliki 2 cabang, 1 cabang, bahkan tidak memiliki cabang (tergantung angka yang diinput). Angka yang lebih kecil selalu berada di bagian kiri dan yang besar berada di bagian kanan.
Dalam BST terdapat beberapa function yang dapat digunakan seperti insertion, deletion, dan print sama seperti linked list dan lain-lain.
Deklarasi awal masih sama dengan linked list:
#include<stdio.h>
#include<stdlib.h>
struct Data{
int nilai;
Data *left , *right; (bedanya disini left dan right, mirip dengan next dan prev)
}*root = NULL; ( kita declare root awal NULL karena belum ada data yang masuk)
Insertion:
struct Data* insertNilai(struct Data *curr,int nilai) ,(menggunakan struct karena akan mengreturn struct)
{
if(curr == NULL)
{
struct Data *temp = (struct Data*)malloc(sizeof(struct Data));
temp->nilai = nilai;
temp->left = temp->right = NULL;
curr = temp;
}
else
{
if(curr->nilai > nilai)
{
curr->left = insertNilai(curr->left,nilai);
}
else
{
curr->right = insertNilai(curr->right,nilai);
}
}
return curr;
}
Deklarasi awal masih sama dengan linked list:
#include<stdio.h>
#include<stdlib.h>
struct Data{
int nilai;
Data *left , *right; (bedanya disini left dan right, mirip dengan next dan prev)
}*root = NULL; ( kita declare root awal NULL karena belum ada data yang masuk)
Insertion:
struct Data* insertNilai(struct Data *curr,int nilai) ,(menggunakan struct karena akan mengreturn struct)
{
if(curr == NULL)
{
struct Data *temp = (struct Data*)malloc(sizeof(struct Data));
temp->nilai = nilai;
temp->left = temp->right = NULL;
curr = temp;
}
else
{
if(curr->nilai > nilai)
{
curr->left = insertNilai(curr->left,nilai);
}
else
{
curr->right = insertNilai(curr->right,nilai);
}
}
return curr;
}
Terima Kasih :)
Comments
Post a Comment