Advertisement
Guest User

Untitled

a guest
May 29th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. import java.io.*;
  2. class node
  3. {
  4. int data;
  5. node left;
  6. node right;
  7. node(int item)
  8. {
  9. data=item;
  10. left=null;
  11. right=null;
  12. }
  13. }
  14. class bstree
  15. {
  16. static node root=null,parent=null;;
  17. static int count=0,no=0;
  18. public static void main(String args[])
  19. {
  20. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  21. int choice,value;
  22. node temp=null,loc=null,prev=null;
  23. String s;
  24. try
  25. {
  26. do
  27. {
  28. System.out.print("\n\nMenu\n1.Insert a node\n2.Delete a node\n3.Exit\nEnter your choice : ");
  29. choice=Integer.parseInt(br.readLine());
  30. switch(choice)
  31. {
  32. case 1 : do
  33. {
  34. System.out.print("Enter the value to be inserted : ");
  35. value=Integer.parseInt(br.readLine());
  36. temp=new node(value);
  37. loc=root;
  38. prev=null;
  39. no++;
  40. if(loc==null)
  41. root=temp;
  42. else
  43. {
  44. count=2*count+2;
  45. while(loc!=null)
  46. {
  47. prev=loc;
  48. if(temp.data<loc.data)
  49. loc=loc.left;
  50. else
  51. loc=loc.right;
  52. }
  53. if(temp.data<prev.data)
  54. prev.left=temp;
  55. else
  56. prev.right=temp;
  57. }
  58. System.out.print("Do you wish to continue Insertion (y/n) ? : ");
  59. s=br.readLine();
  60. }
  61. while(s.charAt(0)=='y'||s.charAt(0)=='Y'…
  62. display();
  63. break;
  64. case 2 : System.out.print("Enter the value to be deleted : ");
  65. value=Integer.parseInt(br.readLine());
  66. loc=root;
  67. prev=null;
  68. boolean flag=false;
  69. if(loc==null)
  70. System.out.println("The tree is empty!");
  71. else
  72. {
  73. while(loc!=null)
  74. {
  75. if(loc.data==value)
  76. {
  77. deletenode(loc,prev);
  78. no--;
  79. flag=true;
  80. }
  81. prev=loc;
  82. if(value<loc.data)
  83. loc=loc.left;
  84. else
  85. loc=loc.right;
  86. }
  87. if(flag==false)
  88. System.out.println("The value not found in the tree!");
  89. }
  90. display();
  91. break;
  92. case 3 : break;
  93. default: System.out.println("Wrong choice!");
  94. break;
  95. }
  96. }
  97. while(choice!=3);
  98. }
  99. catch(Exception e)
  100. {
  101. System.err.println("Error : "+e);
  102. }
  103. }
  104. public static void deletenode(node delnode,node prev)
  105. {
  106. if(delnode.left==null&&delnode.right==nu…
  107. {
  108. if(delnode==root)
  109. root=null;
  110. else if(prev.left==delnode)
  111. prev.left=null;
  112. else
  113. prev.right=null;
  114. }
  115. else if(delnode.left==null)
  116. {
  117. if(delnode==root)
  118. root=delnode.right;
  119. else if(prev.left==delnode)
  120. prev.left=delnode.right;
  121. else
  122. prev.right=delnode.right;
  123. }
  124. else if(delnode.right==null)
  125. {
  126. if(delnode==root)
  127. root=delnode.left;
  128. else if(prev.left==delnode)
  129. prev.left=delnode.left;
  130. else
  131. prev.right=delnode.left;
  132. }
  133. else
  134. {
  135. node successor=delnode.right;
  136. if(successor.left!=null)
  137. {
  138. successor=inordersuccessor(successor);
  139. parent.left=successor.right;
  140. successor.right=parent;
  141. successor.left=delnode.left;
  142. }
  143. else
  144. successor.left=delnode.left;
  145. if(delnode==root)
  146. root=successor;
  147. else if(prev.left==delnode)
  148. prev.left=successor;
  149. else
  150. prev.right=successor;
  151. }
  152. }
  153. public static node inordersuccessor(node loc)
  154. {
  155. while(loc.left!=null)
  156. {
  157. parent=loc;
  158. loc=loc.left;
  159. }
  160. return loc;
  161. }
  162. public static void display()
  163. {
  164. node temp,loc=root;
  165. int i,size=count+1,x=no;
  166. if(loc==null)
  167. System.out.println("The tree is empty!");
  168. else
  169. {
  170. node[] arr=new node[size];
  171. arr[0]=root;
  172. for(i=1;i<size-1;i+=2)
  173. {
  174. temp=arr[(i-1)/2];
  175. if(temp!=null&&temp.left!=null)
  176. arr[i]=temp.left;
  177. else
  178. arr[i]=null;
  179. if(temp!=null&&temp.right!=null)
  180. arr[i+1]=temp.right;
  181. }
  182. System.out.println("The tree is now : ");
  183. for(i=0;i<size;i++)
  184. {
  185. if(x==0)
  186. break;
  187. else
  188. {
  189. if(arr[i]==null)
  190. System.out.print("-1 ");
  191. else
  192. {
  193. System.out.print(arr[i].data+" ");
  194. x--;
  195. }
  196. }
  197. }
  198. }
  199. }
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement