gpt4 book ai didi

Java:将 InOrder 遍历作为字符串返回到 JLabel

转载 作者:行者123 更新时间:2023-12-02 00:13:55 25 4
gpt4 key购买 nike

尝试将 InOrder 遍历的输出返回到 Java JLabel。我能够返回 ArrayList 的内容,但需要输出为不带 [,,,] 的字符串。我确信这是一个简单的解决方案,但我已经被困了一段时间尝试不同的事情,基本上是在追我的尾部。非常感谢您提供的任何帮助。

GUI部分:将文本字段的输入存储为字符串originalList。尝试使用 getResult() 的输出设置 JLabel“resultBox”的文本。

        if (e.getSource() == sortBtn) {
System.out.println("Test");
String originalList = readN();
resultBox.setText(getResult(originalList));
System.out.println("Original List: " + originalList);
}

getResult()标记originalList并插入BinarySearchTree'tree'并返回中序遍历'tree.inOrder()'

   public static String getResult(String tokenString) {

StringTokenizer tokens = new StringTokenizer(tokenString, "()*/+- ", false);

while (tokens.hasMoreTokens()) {
String tkn = tokens.nextToken();

if(tkn.equals(" ")) {
//ignore spaces
}
else {
int key = Integer.parseInt(tkn);
tree.insert(key);
}
}
return tree.inorder();
}

inorder() 调用 inorderRec() 并返回结果。

// This method mainly calls inorderRec() 
String inorder() {
String result = inorderRec(root);
return result;
}

// A utility function to do inorder traversal of BST
String inorderRec(Node root) {

if (root != null) {
inorderRec(root.left);
keyList.add(root.key);
inorderRec(root.right);
}
return String.valueOf(keyList);
//return result;
}

如果使用输入 50 30 20 40 70 60 80,JLabel 的结果应为 20 30 40 50 60 70 80,但实际输出为 [20, 30, 40, 50, 60 ,70 ,80]

最佳答案

String.valueOf(keyList) 调用列表的 toString - 因此您最终得到了表示形式。

而是在 inorderRec 方法返回后以所需的格式构建输出。为此,我认为当您添加到 some 列表 (keyList) 时,不需要从 inorderRec 返回任何内容(您还没有) t 显示了它的创建位置)

String inorder()  { 
inorderRec(root);
return String.join(" ", ketList);
}

void inorderRec(Node root) {

if (root != null) {
inorderRec(root.left);
keyList.add(root.key);
inorderRec(root.right);
}
}

String.join 的 javadoc 状态

Returns a new {@code String} composed of copies of the {@code CharSequence elements} joined together with a copy of the specified {@code delimiter}.

关于Java:将 InOrder 遍历作为字符串返回到 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58102531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com