BINARY SEARCH TREE
Binary Search Tree (BST) sama seperti binary tree, yaitu masing - masing node maksimal memiliki 2 anak. Yang membedakannya ialah nilai node di kiri harus lebih kecil daripada di kanan.
Kelebihan BST:
1. Lebih mudah dalam melakukan pencarian data.
2. Proses melihat data lebih mudah.
3. Mudah dalam penyimpanan dalam data bentuk hirarki.
INSERT SINGLE LINKED LIST
void push(struct *tree node, int a){
if(root==NULL){ //belum pernah terbentuk
root = newNode(a); //pesan memori malloc
}
else if(a < node->a && node->left==NULL){ //kalau yang mau diinput lebih kecil daripada sekarang, dan sebelah kirinya kosong
node->left = newNode(a); //pesen malloc
node->left->parent = node; //parent di node sekarang
}
else if(a > node->a && node->right==NULL){ //kalau yang diinput lebih besar daripada sekarang, dan sebelah kanannya kosong
node->right = newNode(a); //pesen malloc
node->right->parent = node; //parent di node sekarang yg kanan
}
else if(a < node->a){ //yang diinput lebih kecil daripada sekarang, tapi kiri kanan tidak kosong
push(node->left, a); //akan ditaruh di kiri
}
else{ //yang diinput lebih besar daripada sekarang, kiri kanan tidak kosong
push(node->right, a); //akan ditaruh di kanan
}
}
DELETE
//untuk node yang belum memiliki anak, atau node terbawah
//node yang mau dihapus hanya memiliki anak kiri, tidak punya anak kanan
//node yang mau dihapus hanya memiliki anak kanan
//punya anak kanan dan kiri, digantikan oleh anak kiri yang paling besar nilainya. kemudian yg menggantikan dihapus lagi (recursive)
SEARCHING
Sumber:
http://jagocoding.com/tutorial/246/Tutorial_Tree_Binary_Search_Tree
https://socs.binus.ac.id/2017/05/10/implementasi-delete-pada-binary-search-tree/
https://socs.binus.ac.id/2017/05/10/implementasi-insert-pada-binary-search-tree-dengan-single-dan-double-pointer/
https://www.tutorialspoint.com/data_structures_algorithms/binary_search_tree.html
Kelebihan BST:
1. Lebih mudah dalam melakukan pencarian data.
2. Proses melihat data lebih mudah.
3. Mudah dalam penyimpanan dalam data bentuk hirarki.
INSERT SINGLE LINKED LIST
void push(struct *tree node, int a){
if(root==NULL){ //belum pernah terbentuk
root = newNode(a); //pesan memori malloc
}
else if(a < node->a && node->left==NULL){ //kalau yang mau diinput lebih kecil daripada sekarang, dan sebelah kirinya kosong
node->left = newNode(a); //pesen malloc
node->left->parent = node; //parent di node sekarang
}
else if(a > node->a && node->right==NULL){ //kalau yang diinput lebih besar daripada sekarang, dan sebelah kanannya kosong
node->right = newNode(a); //pesen malloc
node->right->parent = node; //parent di node sekarang yg kanan
}
else if(a < node->a){ //yang diinput lebih kecil daripada sekarang, tapi kiri kanan tidak kosong
push(node->left, a); //akan ditaruh di kiri
}
else{ //yang diinput lebih besar daripada sekarang, kiri kanan tidak kosong
push(node->right, a); //akan ditaruh di kanan
}
}
DELETE
//untuk node yang belum memiliki anak, atau node terbawah
//node yang mau dihapus hanya memiliki anak kiri, tidak punya anak kanan
//node yang mau dihapus hanya memiliki anak kanan
//punya anak kanan dan kiri, digantikan oleh anak kiri yang paling besar nilainya. kemudian yg menggantikan dihapus lagi (recursive)
SEARCHING
while(current->data != data){ if(current != NULL) { printf("%d ",current->data); if(current->data > data){ //ke kiri tree current = current->leftChild; } else { //ke kanan tree current = current->rightChild; } if(current == NULL){ //tidak ditemukan return NULL; } } } return current;
Sumber:
http://jagocoding.com/tutorial/246/Tutorial_Tree_Binary_Search_Tree
https://socs.binus.ac.id/2017/05/10/implementasi-delete-pada-binary-search-tree/
https://socs.binus.ac.id/2017/05/10/implementasi-insert-pada-binary-search-tree-dengan-single-dan-double-pointer/
https://www.tutorialspoint.com/data_structures_algorithms/binary_search_tree.html
Komentar
Posting Komentar