struct node { int key;

Berikut ini adalah pertanyaan dari keyshaaliqa5 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

Struct node {int key;
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