Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. package homework1;
  2.  
  3. /**
  4. *
  5. * @author User
  6. */
  7. public class Inorder {
  8.  
  9. Node current;
  10. Node root;
  11.  
  12. public Inorder() {
  13.  
  14. }
  15.  
  16. public void printInOrderDFT() {
  17. System.out.print("InOrder DFT node sequence [ ");
  18. printInOrderDFT(root);
  19. System.out.println("]");
  20. }
  21.  
  22. public static void printInOrderDFT(Node node) {
  23. if (node == null) {
  24. return;
  25. } else {
  26. printInOrderDFT(node.left);
  27. System.out.print(node.key + " " );
  28. System.out.println(calculate(node));
  29. printInOrderDFT(node.right);
  30. }
  31. }
  32.  
  33. public void Key(String k) {
  34.  
  35. for (int i = k.length() - 1; i >= 0; i--) {
  36. Node(new Node(k.charAt(i)));
  37. }
  38. }
  39.  
  40. public static boolean Operator(String k) {
  41. switch (k) {
  42. case "+":
  43. return true;
  44. case "-":
  45. return true;
  46. case "*":
  47. return true;
  48. case "/":
  49. return true;
  50. default:
  51. return false;
  52. }
  53. }
  54.  
  55. public void Node(Node a) {
  56.  
  57. if (root == null) {
  58. root = a;
  59. current = root;
  60. } else if (current.key == '+' || current.key == '-' || current.key == '*' || current.key == '/') {
  61. if (current.right == null) {
  62. current.right = a;//.right;
  63. a.parent = current;
  64. if (current.right.key == '+' || current.right.key == '-' || current.right.key == '*' || current.right.key == '/') {
  65. current = current.right;
  66. }
  67. } else if (current.left == null) {
  68. current.left = a;//.left;
  69. a.parent = current;
  70. if (current.left.key == '+' || current.left.key == '-' || current.left.key == '*' || current.left.key == '/') {
  71. current = current.left;
  72.  
  73. }
  74. } else {
  75. current = current.parent;
  76. Node(a);
  77. }
  78.  
  79. }
  80.  
  81. }
  82.  
  83. public static int calculate(Node a) {
  84.  
  85. if (Operator(a.toString())) {
  86. switch (a.key) {
  87. case '+':
  88. return calculate(a.left) + calculate(a.right);
  89. case '-':
  90. return calculate(a.left) - calculate(a.right);
  91. case '*':
  92. return calculate(a.left) * calculate(a.right);
  93. case '/':
  94. return calculate(a.left) / calculate(a.right);
  95. default:
  96. System.out.println("ERROR");
  97. return 0;
  98. }
  99. } else {
  100. return Integer.parseInt(a.toString());
  101. }
  102.  
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement