Tree in Typecsript
by Preetha Srinivasan
HTML
<link rel="stylesheet" href="https://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.css">
<script src="https://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.js"></script>
<script src="https://cdn.jsdelivr.net/jasmine/1.3.1/jasmine-html.js"></script>
TypeScript
class Node {
data: number;
left: Node;
right: Node;
constructor(data: number) {
this.data = data;
this.left = null;
this.right = null;
}
}
class Tree {
constructor() {
this.root = null;
}
insertRec(root: Node, data: number) {
if (root == null) {
root = new Node(data);
return root;
}
/* Otherwise, recur down the tree */
if (data < root.data)
root.left = this.insertRec(root.left, data);
else if (data > root.data)
root.right = this.insertRec(root.right, data);
/* return the (unchanged) node pointer */
return root;
}
insert(data: number) {
this.root = this.insertRec(this.root, data);
}
inorder(result:[]) {
this.inOrderTraversal(this.root,result);
}
inOrderTraversal(root: Node,result:[]) {
if (root != null) {
this.inOrderTraversal(root.left,result);
console.log(root.data);
result.push(root.data);
this.inOrderTraversal(root.right,result);
}
}
preorder(result:[]) {
this.preOrderTraversal(this.root,result);
}
preOrderTraversal(root: Node,result:[]) {
if (root != null) {
console.log(root.data);
result.push(root.data);
this.preOrderTraversal(root.left,result);
this.preOrderTraversal(root.right,result);
}
}
postorder(result:[]) {
this.postOrderTraversal(this.root,result);
}
postOrderTraversal(root: Node,result:[]) {
if (root != null) {
this.postOrderTraversal(root.left,result);
this.postOrderTraversal(root.right,result);
result.push(root.data);
console.log(root.data);
}
}
levelorder(result:[]) {
this.levelOrderTraversal(this.root,result);
}
levelOrderTraversal(root:Node,result:[]) {
...