我正在制作一个程序,该程序能够按升序或降序对整数或分数列表进行排序。我正在使用 GUI,当我按下按钮时,原始列表应该添加到二叉树中。应该执行中序遍历并且该列表应该显示在 GUI 中。我已经完成了所有工作,但后来我注意到我应该使搜索树类通用。我已将类更改为泛型,但在从 GUI 调用它以实际执行遍历时遇到问题。您可以提供的任何帮助将不胜感激。这是带有 Node 类的原始 SearchTreepublic class SearchTree {// creates the root of the treeNode root;// String to store the answer while tree is being traversedprivate String answer = "";SearchTree (Object x) { root = new Node(x);}/* recursive method adding integers to the tree, * placing it depending on if it is smaller or larger * than the parent node */ Node insertInteger(Node node, Integer x) { if (node == null) { return node = new Node(x); } if (x < (Integer) node.parent) { node.left = insertInteger(node.left, x); } else { node.right = insertInteger(node.right, x); } return node;}// recursive method for adding fractions to the treeNode insertFraction(Node node, Fraction x) { if (node == null) { return node = new Node(x); } if (x.compareTo((Fraction) node.parent) < 1) { node.left = insertFraction(node.left, x); }else { node.right = insertFraction(node.right, x); } return node;}// in order traversal for the ascending orderString inOrder(Node node) { if (node != null) { inOrder(node.left); answer = answer + node.parent + " "; inOrder(node.right); } return answer;}// reversed traversal for the descending orderString descendingOrder(Node node) { if (node != null) { descendingOrder(node.right); answer = answer + node.parent + " "; descendingOrder(node.left); } return answer; }}class Node { Object parent; Node left; Node right; // Constructors Node(Object theParent) { this(theParent, null, null); } private Node(Object theParent, Node lChild, Node rChild) { parent = theParent; this.left = lChild; this.right = rChild; }}
1 回答
![?](http://img1.sycdn.imooc.com/54585094000184e602200220-100-100.jpg)
哔哔one
TA贡献1854条经验 获得超8个赞
您正在使用占位符类型正确声明您的类T
。当您实例化类时,您使用的是占位符,而不是您希望泛型类成为的类型。
SearchTree<Integer> st = new SearchTree<Integer>();
泛型类需要使用具体类型进行实例化,以使所有类型检查正常工作。
添加回答
举报
0/150
提交
取消