Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node {
- constructor(value) {
- this.left = null;
- this.right = null;
- this.value = value;
- }
- }
- class BinarySearchTree {
- constructor() {
- this.root = null;
- }
- insert(value) {
- const newNode = new Node(value);
- if (this.root == null) {
- this.root = newNode;
- } else {
- let currentNode = this.root;
- while (true) {
- if (value < currentNode.value) {
- // left
- if (!currentNode.left) {
- currentNode.left = newNode;
- return this;
- }
- currentNode = currentNode.left;
- } else {
- // right
- if (!currentNode.right) {
- if (!currentNode.right) {
- currentNode.right = newNode;
- return this;
- }
- currentNode = currentNode.right;
- }
- }
- }
- }
- }
- lookup(value){
- if(!this.root){
- return false;
- }
- let currentNode = this.root;
- while(currentNode!=null){
- if(currentNode.value ==value){
- return currentNode;
- }else if(currentNode.value < value){
- currentNode = currentNode.right;
- }else if(currnetNode.value > value){
- currentNode = currentNode.left;
- }
- }
- return false;
- }
- // remove(value){
- // }
- }
- // lookup(value){
- // }
- // remove(value){
- const tree = new BinarySearchTree();
- // myTree.insert
- tree.insert(9)
- tree.insert(4)
- tree.insert(6)
- tree.insert(20)
- // tree.insert(170)
- // tree.insert(15)
- // tree.insert(1)
- console.log(tree.lookup(9));
- // tree.lookup(4);
- JSON.stringify(traverse(tree.root))
- // 9
- // 4 20
- //1 6 15 170
- function traverse(node) {
- const tree = { value: node.value };
- tree.left = node.left === null ? null : traverse(node.left);
- tree.right = node.right === null ? null : traverse(node.right);
- return tree;
- }
Add Comment
Please, Sign In to add comment