Insertion in binary search tree using recursion in typescript

Ts program for Insertion in binary search tree using recursion. Here more information.

// TypeScript program for
// Insertion in binary search tree by using recursion
class TreeNode
{
	public data: number;
	public left: TreeNode;
	public right: TreeNode;
	constructor(data: number)
	{
		this.data = data;
		this.left = null;
		this.right = null;
	}
}
class BinarySearchTree
{
	public root: TreeNode;
	constructor()
	{
		this.root = null;
	}
	// Insert a node element
	public TreeNode addNode(node: TreeNode, data: number)
	{
		if (node != null)
		{
			if (node.data >= data)
			{
				// When new element is smaller or
				// equal to current node
				node.left = this.addNode(node.left, data);
			}
			else
			{
				// When new element is higher to current node
				node.right = this.addNode(node.right, data);
			}
			// important to manage root node
			return node;
		}
		else
		{
			return new TreeNode(data);
		}
	}
	// Display preorder
	public preorder(node: TreeNode)
	{
		if (node != null)
		{
			// Display node value
			console.log("  " + node.data);
			// Visit to left subtree
			this.preorder(node.left);
			// Visit to right subtree
			this.preorder(node.right);
		}
	}
	public inorder(node: TreeNode)
	{
		if (node != null)
		{
			// Visit to left subtree
			this.inorder(node.left);
			// Display node value
			console.log("  " + node.data);
			// Visit to right subtree
			this.inorder(node.right);
		}
	}
	public postorder(node: TreeNode)
	{
		if (node != null)
		{
			// Visit to left subtree
			this.postorder(node.left);
			// Visit to right subtree
			this.postorder(node.right);
			// Display node value
			console.log("  " + node.data);
		}
	}
	public static main(args: string[])
	{
		var tree = new BinarySearchTree();
		/*
		         10
		        / \
		       /   \
		      4     15
		     / \   /
		    3   5 12
		    -------------
		    Build binary search tree


		*/
		tree.root = tree.addNode(tree.root, 10);
		tree.addNode(tree.root, 4);
		tree.addNode(tree.root, 3);
		tree.addNode(tree.root, 5);
		tree.addNode(tree.root, 15);
		tree.addNode(tree.root, 12);
		// Display tree nodes
		console.log("Preorder ");
		tree.preorder(tree.root);
		console.log("\nInorder ");
		tree.inorder(tree.root);
		console.log("\nPostorder ");
		tree.postorder(tree.root);
	}
}
BinarySearchTree.main([]);
/*
 file : code.ts
 tsc --target es6 code.ts
 node code.js
 */

Output

Preorder
  10
  4
  3
  5
  15
  12

Inorder
  3
  4
  5
  10
  12
  15

Postorder
  3
  5
  4
  12
  15
  10


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved