Berikut ini adalah pertanyaan dari keyshaaliqa5 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
struct node *left;
struct node *right;
} *root;
bool search(struct node *curr, int find){
//COMPLETE THE CODE!
}
int heightBinaryTree(struct node *node){
//COMPLETE THE CODE!
}
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Jawaban:
bool search(struct node *curr, int find){
if (curr == NULL) { // base case: not found
return false;
}
if (curr->key == find) { // base case: found
return true;
}
if (find < curr->key) { // search in the left subtree
return search(curr->left, find);
} else { // search in the right subtree
return search(curr->right, find);
}
}
int heightBinaryTree(struct node *node){
if (node == NULL) { // base case: empty tree
return 0;
}
int leftHeight = heightBinaryTree(node->left); // height of left subtree
int rightHeight = heightBinaryTree(node->right); // height of right subtree
return 1 + max(leftHeight, rightHeight); // add 1 to the maximum height of the subtrees
}
Penjelasan:
Note that the search function performs a binary search on a binary search tree, where the key member variable is used to compare nodes. The heightBinaryTree function calculates the height of a binary tree recursively, by finding the height of the left and right subtrees and adding 1 to the maximum of those heights.
Semoga dengan pertanyaan yang sudah terjawab oleh fallian23 dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Tue, 11 Jul 23