fork download
  1. import java.util.Random;
  2.  
  3. class forReturn {
  4. public Integer data;
  5. }
  6.  
  7. class Node {
  8. private Integer data;
  9. private Node left;
  10. private Node right;
  11. private Node(Integer data, Node left, Node right) {
  12. this.data = data;
  13. this.left = left;
  14. this.right = right;
  15. }
  16. public static Node pushNode(Node root, Integer data) {
  17. if (root == null) {
  18. return new Node(data, null, null);
  19. } else if (data.intValue() < root.data.intValue()) {
  20. root.left = pushNode(root.left, data);
  21. return root;
  22. } else {
  23. root.right = pushNode(root.right, data);
  24. return root;
  25. }
  26. }
  27. public static Node popNode(Node root, forReturn Data) {
  28. if (root == null)
  29. return null;
  30. if (root.left != null) {
  31. root.left = popNode(root.left, Data);
  32. return root;
  33. }
  34. Data.data = root.data;
  35. return root.right;
  36. }
  37. }
  38.  
  39. class Main {
  40. final static int N = 50;
  41. final static int MAX = 10000;
  42. public static void main(String[] args) {
  43. Random random = new Random();
  44. Node root = null;
  45. for (int i = 0; i < N; i++) {
  46. Integer Data = new Integer(random.nextInt(MAX));
  47. root = Node.pushNode(root, Data);
  48. System.out.println(Data + "," + root);
  49. }
  50. System.out.println();
  51. do {
  52. forReturn Data;
  53. root = Node.popNode(root, Data = new forReturn());
  54. System.out.println(Data.data);
  55. } while (root != null);
  56. }
  57. }
  58. /* end */
  59.  
Success #stdin #stdout 0.03s 245632KB
stdin
Standard input is empty
stdout
9474,Node@42e816
9826,Node@42e816
2233,Node@42e816
9295,Node@42e816
2682,Node@42e816
7392,Node@42e816
4819,Node@42e816
5784,Node@42e816
3578,Node@42e816
5275,Node@42e816
4327,Node@42e816
7918,Node@42e816
8538,Node@42e816
2675,Node@42e816
9961,Node@42e816
913,Node@42e816
906,Node@42e816
1595,Node@42e816
425,Node@42e816
5307,Node@42e816
6614,Node@42e816
861,Node@42e816
6689,Node@42e816
4741,Node@42e816
1240,Node@42e816
8749,Node@42e816
2526,Node@42e816
5106,Node@42e816
10,Node@42e816
6234,Node@42e816
552,Node@42e816
9113,Node@42e816
7189,Node@42e816
4833,Node@42e816
1343,Node@42e816
6912,Node@42e816
3116,Node@42e816
4220,Node@42e816
7476,Node@42e816
1923,Node@42e816
8718,Node@42e816
2888,Node@42e816
3761,Node@42e816
1012,Node@42e816
6060,Node@42e816
1476,Node@42e816
5062,Node@42e816
9917,Node@42e816
392,Node@42e816
4549,Node@42e816

10
392
425
552
861
906
913
1012
1240
1343
1476
1595
1923
2233
2526
2675
2682
2888
3116
3578
3761
4220
4327
4549
4741
4819
4833
5062
5106
5275
5307
5784
6060
6234
6614
6689
6912
7189
7392
7476
7918
8538
8718
8749
9113
9295
9474
9826
9917
9961