Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. public class BinaryTreeNode
  2. {
  3. // data members
  4. Object element;
  5. BinaryTreeNode leftChild; // left subtree
  6. BinaryTreeNode rightChild; // right subtree
  7.  
  8. // constructors
  9. public BinaryTreeNode() {
  10.  
  11.  
  12. }
  13.  
  14. public BinaryTreeNode(Object theElement)
  15. {element = theElement;}
  16.  
  17. public BinaryTreeNode(Object theElement,
  18. BinaryTreeNode theleftChild,
  19. BinaryTreeNode therightChild)
  20. {
  21. element = theElement;
  22. leftChild = theleftChild;
  23. rightChild = therightChild;
  24. }
  25.  
  26. // output method
  27. public String toString()
  28. {return element.toString();}
  29. }
  30.  
  31.  
  32. /** binary tree traversal methods */
  33.  
  34. public class BinaryTreeTraversal
  35. {
  36.  
  37.  
  38. /** preorder traversal */
  39. public void preOrder(BinaryTreeNode t)
  40. {
  41. if (t != null)
  42. {
  43. visit(t); // visit tree root
  44. preOrder(t.leftChild); // do left subtree
  45. preOrder(t.rightChild); // do right subtree
  46. }
  47. }
  48.  
  49. /** inorder traversal */
  50. public void inOrder(BinaryTreeNode t)
  51. {
  52. if (t != null)
  53. {
  54. inOrder(t.leftChild); // do left subtree
  55. visit(t); // visit tree root
  56. inOrder(t.rightChild); // do right subtree
  57. }
  58. }
  59.  
  60. /** postorder traversal */
  61. public void postOrder(BinaryTreeNode t)
  62. {
  63. if (t != null)
  64. {
  65. postOrder(t.leftChild); // do left subtree
  66. postOrder(t.rightChild); // do right subtree
  67. visit(t); // visit tree root
  68. }
  69. }
  70.  
  71. /** level order traversal */
  72. public void levelOrder(BinaryTreeNode t)
  73. {
  74. ArrayQueue q = new ArrayQueue();
  75. while (t != null)
  76. {
  77. visit(t); // visit t
  78.  
  79. // put t's children on queue
  80. if (t.leftChild != null)
  81. q.put(t.leftChild);
  82. if (t.rightChild != null)
  83. q.put(t.rightChild);
  84.  
  85. // get next node to visit
  86. t = (BinaryTreeNode) q.remove();
  87. }
  88. }
  89.  
  90. public void visit(BinaryTreeNode t){
  91.  
  92.  
  93.  
  94. }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement