Skip to main content

implement a binary search tree in js -------------------------------------



//implement a binary search tree in js -------------------------------------
class TreeNode
{
data:any
left:TreeNode
right:TreeNode
constructor(__data:any)
{
this.data=__data;
}
}
class Tree
{

//add a node to the tree
root:TreeNode=null
//public----------------------------------------------------
public insert(data:any)
{
if(this.root!=null)
{
this.insertWithLeaf(data,this.root)
}else
{
this.root=new TreeNode(data);
this.root.left=null;
this.root.right=null;
}
}
//private----------------------------------------------------
private insertWithLeaf(data:any,leaf:TreeNode)
{
//add node to left
if(data<leaf.data)
{
if(leaf.left!=null)
{
this.insertWithLeaf(data,leaf.left);
}else
{
leaf.left=new TreeNode(data);
leaf.left.left=null;
leaf.left.right=null;
}
}
//add node to right
else if(data>leaf.data)
{
if(leaf.right!=null)
{
this.insertWithLeaf(data,leaf.right);
}else
{

leaf.right=new TreeNode(data);
leaf.right.left=null;
leaf.right.right=null;
}
}
}
//print data inorder-------------------------------------------left root right
printInOrder()
{
this.displayInOrder(this.root);
}
displayInOrder(leaf)
{
if(leaf!=null)
{
this.displayInOrder(leaf.left);
console.log(leaf.data);
this.displayInOrder(leaf.right);
}
}
//print preorder-----------root left right-----------------------------------
printPreOrder()
{
this.displayPreOrder(this.root);
}
displayPreOrder(leaf)
{
if(leaf!=null)
{
console.log(leaf.data);
this.displayPreOrder(leaf.left);
this.displayPreOrder(leaf.right);
}
}
//print preorder-----------left right root-----------------------------------
printPostOrder()
{
this.displayPostOrder(this.root);
}
displayPostOrder(leaf)
{
if(leaf!=null)
{
this.displayPostOrder(leaf.left);
this.displayPostOrder(leaf.right);
console.log(leaf.data);
}
}
//search in tree------------------------------divide into two parts

SearchInTree(node,data)
{
let currentNode=node;
while(currentNode!=null)
{
if(currentNode.data==data)
{
return currentNode;
}
if(currentNode.data>data)
{
currentNode=currentNode.left;
}
else if(currentNode.data<data)
{
currentNode=currentNode.right;
}
}
}
}

var binarySearchTree=new Tree();
binarySearchTree.insert("manish");
binarySearchTree.insert("sachin");
binarySearchTree.insert("seema");
binarySearchTree.insert("nitin");
binarySearchTree.insert("deepak");
binarySearchTree.insert("sanjay");
//console.log(binarySearchTree.Search(120));
/*
console.log("INORDER--------------------->>")
binarySearchTree.printInOrder();
console.log("PREORDER--------------------->>")
binarySearchTree.printPreOrder();

console.log("POSTORDER--------------------->>")
binarySearchTree.printPostOrder();
*/
console.log(binarySearchTree.SearchInTree(binarySearchTree.root,"manish"));

Comments

Popular posts from this blog

Better Memory management with PixiJS or How to manage cpu and cpu memory in PixiJS.

PixiJS is my favorite framework when i am looking for a web games specially for mobile or desktop  PixiJS is fast blazing fast and you can get a decent FPS even on older device.   so here is my optimization techniques for PixiJs 1. manage your sprites in a better way use spritesheet to reduce the draw calls create big sprite sheet which contain multiple sprites can be draw in gpu with a single draw call. use TexturePacker  https://www.codeandweb.com/texturepacker  best tool when its comes to spritesheet 2. for floating point calculation round off calculation for example let  speed = 0.75 ; let  position = 100 ; console . log ( Math . round ( speed * position )) 3. don't create very big canvas when u need a big canvas size game just try to create a small canvas and translate it. 4. its very important one managing TextureCache in memory you can get all TextureCache list by using  Object.entries(PIXI.utils.TextureCache); so even you use ap...

adding particles Effect in pixijs using https://pixijs.io/pixi-particles-editor/

adding particle in pixijs is very easy using the below tool more information can be found below https://github.com/pixijs/pixi-particles https://pixijs.io/pixi-particles-editor/ required packages  /// < reference path = "node_modules/pixi-particles/ambient.d.ts" /> import 'pixi-particles' code of particle delcare a     global variable   private emitter ?: Emitter ; const img = PIXI . Texture . from ( "./assets/images/particle.png" ); this . emitter = new Emitter ( this ,[ img ],{ "alpha" : { "start" : 0.62 , "end" : 0.39 }, "scale" : { "start" : 0.1 , "end" : 0.9 , "minimumScaleMultiplier" : 1.25 }, "color" : { "start" : "#ffff8f" , "end" : ...