Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Java (http://www.go4expert.com/forums/java/)
-   -   Help Semantic Tableaux (http://www.go4expert.com/forums/help-semantic-tableaux-t3959/)

dina86 20Apr2007 23:57

Help Semantic Tableaux
 
Does anyone know how Semantic Tableaux works?..
Here is an example:

|| (a=>b) ^ c

c||(a=>b) (a=>b) || c

c,a|| || c, a, b b,c||a

I need it to work in java.. any ideas? I am having problems developing it when the tableaux splits into 2 when 2 options are needed. this is what ive got so far..

Code:

public class Algorithm {
       
       
        LinkedList left;
        LinkedList right;
       
        //Gains Node root from parser and passes to Algorithm and creates and new linkedlist left and right
        public Algorithm(Node root) {
               
                parent = new LinkedList();
                left = new LinkedList();
                right = new LinkedList();
                right.addElement(root, 0); //adds root to rightList and sets the count of that tree to 0 (heirarchy/treeid)
                int count = 0;
               
                while((left.length() > 0) || (right.length() > 0)){
                       
                        while (right.length() > 0)
                        {
                               
                                Node temp = right.getElement();
                               
                                if(temp.data == "^")       
                                {
                                       
                                        right.deleteElement();
                                       
                                        left.addElement(temp.left, count);
                                        right.addElement(temp.right, count);
                                        count++;
                                        left.addElement(temp.right, count);
                                        right.addElement(temp.left, count);
                                       
                                        Node tmp = temp.left;
                                        System.out.println(tmp.data);
                                        tmp = temp.right;
                                        System.out.println(tmp.data);       
                                       
                                }
                               
                                if (temp.data == "=>")
                                {
                                       
                                        System.out.println(temp.data );       
                                        Node tmp = temp.left;
                                        System.out.println(tmp.data);
                                        tmp = temp.right;
                                        System.out.println(tmp.data);
                                       
                                        right.deleteElement();
                                       
                                        left.addElement(temp.left, count);
                                        right.addElement(temp.right, count);
                                       
                                }
                               
                               
                                if (temp.data == "v")
                                {
                                       
                                        right.deleteElement();
                                       
                                        left.addElement(temp.left, count);
                                        right.addElement(temp.right, count);
                                        count++;
                                        left.addElement(temp.right, count);
                                        right.addElement(temp.left, count);
                                       
                                        Node tmp = temp.left;
                                        System.out.println(tmp.data);
                                        tmp = temp.right;
                                        System.out.println(tmp.data);
                                }
                               
                                if (temp.data == "-")
                                {
                                        left.addElement(temp.right, count);
                                        right.deleteElement();
                                       
                                       
                                       
                                }
                        }
                       
                        while(left.length() > 0)
                        {
                               
                                Node temp = (Node) left.getElement();
                               
                                if(temp.data == "^")
                                {
                                        left.addElement(temp.left, count);
                                        left.addElement(temp.right, count);
                                        left.deleteElement();
                                        Node tmp = (Node) left.data;
                                        System.out.println(tmp.data);
                                        tmp = (Node) right.data;
                                        System.out.println(tmp.data);
                                }
                               
                                if(temp.data == "v")
                                {
                                        left.addElement(temp.left, count);
                                        right.addElement(temp.right, count);
                                        count++;
                                        left.addElement(temp.right, count);
                                        left.addElement(temp.left, count);
                                        left.deleteElement();
                                        Node tmp = (Node) left.data;
                                        System.out.println(tmp.data);
                                        tmp = (Node) right.data;
                                        System.out.println(tmp.data);
                                }
                               
                                if(temp.data == "=>")
                                {
                                        left.addElement(temp.right, count);
                                        right.addElement(temp.left, count);
                                        count ++;
                                        right.addElement(temp.right, count);
                                        right.addElement(temp.left, count);
                                        left.deleteElement();
                                        Node tmp = (Node) left.data;
                                        System.out.println(tmp.data);
                                        tmp = (Node) right.data;
                                        System.out.println(tmp.data);
                                }
                               
                                if(temp.data == "-")
                                {
                                        right.addElement(temp.left, count);
                                        left.deleteElement();
                                }
                               
                        }       
                       
}

}


}

class Node
{
        public String data;
        public Node left ;
        public Node right ;
       
}



All times are GMT +5.5. The time now is 13:02.