Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. function BinarySearchTree() {
  2.  
  3. function Node(value) {
  4. this.value = value;
  5. this.left = null;
  6. this.right = null;
  7. }
  8.  
  9. this.root = null;
  10.  
  11. this.addNode = function(value) {
  12. let node = new Node(value);
  13. if (!this.root) {
  14. this.root = node;
  15. } else {
  16. insertNode(this.root, node);
  17. }
  18. }
  19.  
  20. function insertNode(currentNode, newNode) {
  21. if (newNode.value < currentNode.value) {
  22. if (!currentNode.left) {
  23. currentNode.left = newNode;
  24. } else {
  25. insertNode(currentNode.left, newNode);
  26. }
  27. } else {
  28. if (!currentNode.right) {
  29. currentNode.right = newNode;
  30. } else {
  31. insertNode(currentNode.right, newNode);
  32. }
  33. }
  34. }
  35.  
  36. this.postOrderTraversal = function(callback) {
  37. postOrderTraversalHelper(this.root, callback);
  38. }
  39.  
  40. function postOrderTraversalHelper(node, callback) {
  41. if (node) {
  42. callback(node.value);
  43. postOrderTraversalHelper(node.left, callback);
  44. postOrderTraversalHelper(node.right, callback);
  45. }
  46. }
  47.  
  48. }
  49.  
  50. let tree = new BinarySearchTree();
  51. tree.addNode(3);
  52. tree.addNode(5);
  53. tree.addNode(14);
  54. tree.addNode(11);
  55. tree.addNode(25);
  56. tree.addNode(2);
  57.  
  58. tree.postOrderTraversal(function log(value) {
  59. console.log(value);
  60. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement