我尝试在一个红黑二叉搜索树的旧java程序中获取树的打印输出(即st.keys()),使用:
导入java.util.scanner;
和
导入edu.princeton.cs.algs4.stdin;
导入edu.princeton.cs.algs4.stdout;
它似乎不起作用的原因我不知道。我也试过调试。在两个版本的main()中,程序在第一个for循环之后停止。任何方向正确的帮助都会很好。
下面是带有终端输出的代码的一些图像:main()的替代版本main()的初始版本
使用import edu.princeton.cs.algs4.stdin初始化main():
public static void main(String[] args) {
RedBlackBST<String, Integer> st = new RedBlackBST<>();
for (int i = 0; !StdIn.isEmpty(); i++) {
String key = StdIn.readString();
st.put(key, i);
}
StdOut.println();
for (String s : st.keys())
StdOut.println(s + " " + st.get(s));
StdOut.println();
//StdOut.println(st.check());
st.delete("t");
System.out.println(st.keys());
}
使用import java.util.scanner的可选main():
public static void main(String[] args) {
RedBlackBST<String, Integer> st = new RedBlackBST<>();
Scanner input = new Scanner(System.in);
for(int i=0; input.nextLine() != ""; i++){
String key = input.nextLine(); // Use in.nextLine() for line-by-line reading
st.put(key, i);
System.out.println(input);
}
input.close();
for (String s : st.keys()){
System.out.println(s + " " + st.get(s));
System.out.println();
//StdOut.println(st.check());
st.delete("t");
System.out.println(st.keys());
}
}
终端输出(包括用户输入):
/usr/lib/jvm/java-11-openjdk-amd64/bin/java -Dfile.encoding=UTF-8 @/tmp/cp_do3cqf4bgpqm37l69q1dfdnql.argfile RedBlackBST
t
a
l
l
t
r
e
e
s
^Z
[1]+ Stopped /usr/lib/jvm/java-11-openjdk-amd64/bin/java -Dfile.encoding=UTF-8 @/tmp/cp_do3cqf4bgpqm37l69q1dfdnql.argfile RedBlackBST
1条答案
按热度按时间juzqafwq1#
我用ctrl+d得到正确的输出,我用ctrl+z退出