package com.AI; import com.DBpackage.MyDatabase; import java.util.ArrayList; class Node { private String attributeName; private ArrayList valuesList; class Value { private String value; private Node next; public Value() { next = null; } String getValue() { return value; } void setValue(String value) { this.value = value; } Node getNext() { return next; } void setNext(Node next) { this.next = next; } } public Node() { valuesList = new ArrayList<>(); } public Node(String attributeName) { this.setAttributeName(attributeName); valuesList = new ArrayList<>(); } public String getAttributeName() { return attributeName; } public void setAttributeName(String attributeName) { this.attributeName = attributeName; } public ArrayList getValuesList() { return valuesList; } public void setValuesList(ArrayList valuesList) { this.valuesList = valuesList; } void setVal(String value, Node obj) { Value valueObj = new Value(); valueObj.setValue(value); valueObj.setNext(obj); //obj.getValuesList().get(0).setPrevious(this); //if(obj.getPrevious().getValuesList().get(0).isVisited() == true); valuesList.add(valueObj); } } class NaryTree { private Node head; NaryTree() { head = null; } public Node getHead() { return head; } public void setHead(Node head) { this.head = head; } ////////////////////////////////////////////////////////////////////////////////// /*Node createNode(Node h, Node parent, String edgeName, Node child) { if (head == null) { System.out.println("Initializing head node"); // h = new Node(parentName); // this.setHead(h); // System.out.println("Head: " + h.getAttributeName()); // return h; head = parent; return head; } else { createLink(parent, child, edgeName); return child; } }*/ Node createNode(Node h, Node parent, String edgeName, Node child) { if (head == null) { System.out.println("Initializing head node"); // h = new Node(parentName); // this.setHead(h); // System.out.println("Head: " + h.getAttributeName()); // return h; head = parent; return head; } else { createLink(parent, child, edgeName); return child; } } private void createLink(Node parent, Node child, String value) { // System.out.println("Edge: " + value + " Child: " + child.getAttributeName() ); parent.setVal(value, child); } ////////////////////////////////////////////////////////////////////////////////// private void traverse(Node node) { if(node == null) { System.out.println(); return; } System.out.print(" " + node.getAttributeName() + " "); if(node.getAttributeName().equalsIgnoreCase("Yes") || node.getAttributeName().equalsIgnoreCase("No")) System.out.println(); if(node.getValuesList() == null) { System.out.print(node.getAttributeName()); return; } for(Node.Value v: node.getValuesList()) { System.out.print(" " + v.getValue()); traverse(v.getNext()); } } void displayTree() { System.out.println("Displaying tree(pre-order):"); System.out.println("------------------"); if(head!=null) { traverse(head); } else { System.out.println("Head node not created/initialized"); } System.out.println(); System.out.print("------------------"); System.out.println(); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// private void traverseDBTest(Node node, MyDatabase myDatabase) { if(node == null) { System.out.println(); return; } //System.out.print(" " + node.getAttributeName()); if(node.getValuesList() == null) { // System.out.print(node.getAttributeName()); return; } for(Node.Value value : node.getValuesList()) { // System.out.print(" " + sn.getValue()); if(value.getNext().getAttributeName() == null) System.out.println("null"); else { myDatabase.insertTree(node.getAttributeName(), value.getValue(), value.getNext().getAttributeName()); System.out.println("Parent: " + node.getAttributeName() + " Edge: " + value.getValue() + " Child: " + value.getNext().getAttributeName()); } traverseDBTest(value.getNext(),myDatabase); } //System.out.println("Node named" + nodeName + "does not exist in the tree"); } void dbTest(MyDatabase myDatabase) { if(head!=null) { traverseDBTest(head, myDatabase); } else { System.out.println("Head node not created/initialized"); } System.out.println(); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// }