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 },
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 now
This is a popular solution!
Step by step
Solved in 2 steps