Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function BinarySearchTree() {
- function Node(value) {
- this.value = value;
- this.left = null;
- this.right = null;
- }
- this.root = null;
- this.addNode = function(value) {
- let node = new Node(value);
- if (!this.root) {
- this.root = node;
- } else {
- insertNode(this.root, node);
- }
- }
- function insertNode(currentNode, newNode) {
- if (newNode.value < currentNode.value) {
- if (!currentNode.left) {
- currentNode.left = newNode;
- } else {
- insertNode(currentNode.left, newNode);
- }
- } else {
- if (!currentNode.right) {
- currentNode.right = newNode;
- } else {
- insertNode(currentNode.right, newNode);
- }
- }
- }
- this.postOrderTraversal = function(callback) {
- postOrderTraversalHelper(this.root, callback);
- }
- function postOrderTraversalHelper(node, callback) {
- if (node) {
- callback(node.value);
- postOrderTraversalHelper(node.left, callback);
- postOrderTraversalHelper(node.right, callback);
- }
- }
- }
- let tree = new BinarySearchTree();
- tree.addNode(3);
- tree.addNode(5);
- tree.addNode(14);
- tree.addNode(11);
- tree.addNode(25);
- tree.addNode(2);
- tree.postOrderTraversal(function log(value) {
- console.log(value);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement