
JavaScript: Search the Tree
A binary search tree is a data structure that consists of JavaScript objects called "nodes". A tree always has a root node which holds its own integer valueproperty and can have up to two child nodes (or leaf nodes), a left and right attribute. A leaf node holds a value attribute and, likewise, a left and rightattribute each potentially pointing to another node in the binary tree. Think of it as a Javascript object with potentially more sub-objects referenced by the left and right attributes (as seen in assignment 4). There are certain rules that apply to a binary tree:
- A node's left leaf node has a value that is <= than to its own value
- A node's right leaf node has a value that is => its own value
In other words:
let node = {
value: <some number>
left: <a node object with value attribute <= this object's value>
right: <a node object with value attribute >= this object's value>
}
If you need a visual aid, below is an example of what a binary tree looks like according to the above rules: -- image attached.
You will be writing a function called isPresent that takes two arguments: the root object and a value (number), and returns a boolean: true if the value is present in the tree or false if it is not present.
function isPresent(root, value) {
// your code here
// return boolean
}
Let's translate the above image into a familiar JavaScript object below as an example:
let tree = {
"value": 100,
"left": {
"value": 50,
"left": {
"value": 25,
"left": null,
"right": null
},
"right": {
"value": 75,
"left": null,
"right": null
}
},
"right": {
"value": 150,
"left": null
"right": null
}
}
console.log(isPresent(tree, 25))
Output: true
Reasoning: 25 is the value of a leaf node in the binary tree
..
"left": {
"value": 25,
"left": null,
"right": null
},

Trending nowThis is a popular solution!
Step by stepSolved in 2 steps

- #ifndef BT_NODE_H#define BT_NODE_H struct btNode{ int data; btNode* left; btNode* right;}; // pre: bst_root is root pointer of a binary search tree (may be 0 for// empty tree) and portArray has the base address of an array large// enough to hold all the data items in the binary search tree// post: The binary search tree has been traversed in-order and the data// values are written (as they are encountered) to portArray in// increasing positional order starting from the first elementvoid portToArrayInOrder(btNode* bst_root, int* portArray);void portToArrayInOrderAux(btNode* bst_root, int* portArray, int& portIndex); // pre: (none)// post: dynamic memory of all the nodes of the tree rooted at root has been// freed up (returned back to heap/freestore) and the tree is now empty// (root pointer contains the null address)void tree_clear(btNode*& root); // pre: (none)// post: # of nodes contained in tree rooted at root is returnedint…arrow_forwardQ5_2\ Draw the binary search tree that would result from the insertion of the following integer keys: 14 58 18 10 99 52 33 69 47 17.arrow_forwardJavaarrow_forward
- In Java,What is the maximum number of comparisons that a binary search function will make when searching for a value in a 2000-elements array? why?What is the difference between a binary tree and a binary search tree?arrow_forward1. Create a Java program that prompts the user the initial choices for the Binary Search Treea. User chooses 1: Insert, User chooses 2: Delete, User chooses 3: Show BinaryTree, User chooses 4: Exit Program 2. Insertion in a tree should be such that it obeys the main properties of the binary searchtree. The basic algorithm should be:a. If the node to be inserted is greater than the existing root, move down a levelthrough the right pointer of the root.b. If the node to be inserted is lesser than the existing root, move down a levelthrough the left pointer of the root.c. Repeat this process for all nodes till the leaves are reached.d. Insert the node as the left or right pointer for the leaf (based on its value - if it issmaller than the leaf, it should be inserted as the left pointer; if it is larger than theleaf, it should be inserted as the right pointer) 3. Deletion is a bit more complicated than insertion because it varies depending on the nodethat needs to be deleted from the…arrow_forwardExplore the concept of Binary Expression Trees and their role in evaluating mathematical expressions. How can you construct and evaluate expressions using binary expression trees?arrow_forward
- JAVA Create binary search tree shown as below. Now delete the key 18, and then calculate the balance factor and convert into AVLtree by proper rotationarrow_forwardCourse: Data Structure and Algorithms Language: Java Topic: AVL Tree Kindly solve this question prperly step by step and complete. AVL Tree basics Draw the AVL tree after performing each of the following operations consecutively on an initially empty binary search tree: insert 8, insert 6, insert 12, insert 3, insert 10, insert 9, delete 12, delete 8, insert 7, insert 8. If you delete an item from an AVL tree and then insert it back into the tree, will you always get back the original AVL tree? Justify your answer.arrow_forwardA binary search tree is a data structure that consists of JavaScript objects called "nodes". A tree always has a root node which holds its own integer value property and can have up to two child nodes (or leaf nodes), a left and right property. A leaf node holds a value attribute and, likewise, a left and right attribute each potentially pointing to another node in the binary tree. Think of it as a javascript object with potentially more sub-objects referenced by the left and right attributes. There are certain rules that apply to a binary tree: A node's left leaf node has a value that is <= than to its own value A node's right leaf node has a value that is => its own value. In other words: let node = { value: left: right: = this object's value> } You will be writing a function called isPresent that takes two arguments: the root object and a value (number), and returns a boolean true if the value is present in the tree or false if it is not present. function isPresent(root,…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





