Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Node transform(Node element) {
- if(element == null)
- return null;
- if(element.value.equals("NOT") && element.Lchild.value.equals("FALSE")) {
- element.value = "TRUE";
- element.Lchild = null;
- return element;
- }
- if(element.value.equals("NOT") && element.Lchild.value.equals("TRUE")) {
- element.value = "FALSE";
- element.Lchild = null;
- return element;
- }
- if(element.value.equals("NOT") && element.Lchild.value.equals("NOT")) {
- Node temp = element;
- int no_nots = 0;
- while(temp.value.equals("NOT")) {
- temp = temp.Lchild;
- no_nots++;
- }
- if(no_nots % 2 == 0)
- return transform(temp);
- element.Lchild = temp;
- return transform(element);
- }
- if(element.value.equals("NOT") && element.Lchild.value.equals("AND")) {
- element.value = "OR";
- Node newLchild = new Node("NOT");
- newLchild.Lchild = element.Lchild.Lchild;
- Node newRchild = new Node("NOT");
- newRchild.Lchild = element.Lchild.Rchild;
- element.Lchild = transform(newLchild);
- element.Rchild = transform(newRchild);
- return element;
- }
- if(element.value.equals("NOT") && element.Lchild.value.equals("OR")) {
- element.value = "AND";
- Node newLchild = new Node("NOT");
- newLchild.Lchild = element.Lchild.Lchild;
- Node newRchild = new Node("NOT");
- newRchild.Lchild = element.Lchild.Rchild;
- element.Lchild = transform(newLchild);
- element.Rchild = transform(newRchild);
- return element;
- }
- element.Lchild = transform(element.Lchild);
- element.Rchild = transform(element.Rchild);
- return element;
- } //transform
Advertisement
Add Comment
Please, Sign In to add comment