fork(2) download
  1. class myNode
  2. {
  3. myNode next;
  4. myNode prev;
  5. int data;
  6. myNode(int num)
  7. {
  8. next=null;
  9. prev=null;
  10. data=num;
  11. }
  12. myNode()
  13. {
  14. next=null;
  15. prev=null;
  16. }
  17. }
  18. class BST
  19. {
  20. myNode node;
  21. BST()
  22. {
  23. node=new myNode();
  24. }
  25. BST(myNode node)
  26. {
  27. this.node=node;
  28. }
  29. void boundryNodeDisp(myNode node, boolean isLeftSubTree)
  30. {
  31. if(node==null)
  32. return;
  33. if(isLeftSubTree)
  34. {
  35. if(node.next==null && node.prev==null)
  36. System.out.println(" "+node.data);
  37. else if(node.prev==null)
  38. {
  39. System.out.println(" "+node.data);
  40. boundryNodeDisp(node.next,true);
  41. }
  42. else if(node.next==null)
  43. {
  44. System.out.println(" "+node.data);
  45. boundryNodeDisp(node.prev,true);
  46. }
  47. else
  48. {
  49. boundryNodeDisp(node.prev,true);
  50. boundryNodeDisp(node.next,true);
  51. }
  52. }
  53. else
  54. {
  55. if(node.next==null && node.prev==null)
  56. System.out.println(" "+node.data);
  57. else if(node.prev==null)
  58. {
  59. boundryNodeDisp(node.next,false);
  60. System.out.println(" "+node.data);
  61. }
  62. else if(node.next==null)
  63. {
  64. boundryNodeDisp(node.prev,false);
  65. System.out.println(" "+node.data);
  66. }
  67. else
  68. {
  69. boundryNodeDisp(node.prev,false);
  70. boundryNodeDisp(node.next,false);
  71. }
  72. }
  73. }
  74. public static void main(String[] args)
  75. {
  76. BST bsTree=new BST(new myNode(20));
  77. bsTree.node.prev=new myNode(8);
  78. bsTree.node.next=new myNode(22);
  79. bsTree.node.next.next=new myNode(25);
  80. bsTree.node.next.prev=new myNode(23);
  81. bsTree.node.next.prev.next=new myNode(24);
  82. System.out.println("--------------------------------------");
  83. System.out.println(" "+bsTree.node.data);
  84. bsTree.boundryNodeDisp(bsTree.node.prev,true);
  85. bsTree.boundryNodeDisp(bsTree.node.next,false);
  86. }
  87. }
Success #stdin #stdout 0.07s 380224KB
stdin
Standard input is empty
stdout
--------------------------------------
   20
  8
  24
  23
  25