Guest User

Untitled

a guest
Jan 13th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. public Node transform(Node element) {
  2. if(element == null)
  3. return null;
  4. if(element.value.equals("NOT") && element.Lchild.value.equals("FALSE")) {
  5. element.value = "TRUE";
  6. element.Lchild = null;
  7. return element;
  8. }
  9. if(element.value.equals("NOT") && element.Lchild.value.equals("TRUE")) {
  10. element.value = "FALSE";
  11. element.Lchild = null;
  12. return element;
  13. }
  14. if(element.value.equals("NOT") && element.Lchild.value.equals("NOT")) {
  15. Node temp = element;
  16. int no_nots = 0;
  17. while(temp.value.equals("NOT")) {
  18. temp = temp.Lchild;
  19. no_nots++;
  20. }
  21. if(no_nots % 2 == 0)
  22. return transform(temp);
  23.  
  24. element.Lchild = temp;
  25. return transform(element);
  26. }
  27. if(element.value.equals("NOT") && element.Lchild.value.equals("AND")) {
  28. element.value = "OR";
  29. Node newLchild = new Node("NOT");
  30. newLchild.Lchild = element.Lchild.Lchild;
  31. Node newRchild = new Node("NOT");
  32. newRchild.Lchild = element.Lchild.Rchild;
  33. element.Lchild = transform(newLchild);
  34. element.Rchild = transform(newRchild);
  35. return element;
  36. }
  37. if(element.value.equals("NOT") && element.Lchild.value.equals("OR")) {
  38. element.value = "AND";
  39. Node newLchild = new Node("NOT");
  40. newLchild.Lchild = element.Lchild.Lchild;
  41. Node newRchild = new Node("NOT");
  42. newRchild.Lchild = element.Lchild.Rchild;
  43. element.Lchild = transform(newLchild);
  44. element.Rchild = transform(newRchild);
  45. return element;
  46. }
  47.  
  48. element.Lchild = transform(element.Lchild);
  49. element.Rchild = transform(element.Rchild);
  50. return element;
  51. } //transform
Advertisement
Add Comment
Please, Sign In to add comment