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: left: right: = 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
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
},
![100
50
150
25
75](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F90c66e7a-acac-4737-b6e4-b9fcb64100ba%2F3a821660-bc69-4b7a-9180-caec0111c8ff%2Ft8mzxde_processed.png&w=3840&q=75)
![](/static/compass_v2/shared-icons/check-mark.png)
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 2 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)