使用导入algs4.StdIn和util.Visual Studio中的扫描仪



我正试图在红黑二进制搜索树的旧java程序中使用打印出树(即st.keys(((

导入java.util.Scanner

导入edu.princeton.cs.algs4.StdIn
导入edu.princeton.cs.algs4.StdOut;

由于我不知道的原因,它似乎不起作用。我也试过调试。在两个版本的main((中,程序在第一个for循环后停止。在正确的方向上提供任何帮助都是非常好的。

以下是带有终端输出的代码的一些图像:main((的替代版本main((的初始版本

初始main((使用导入edu.princeton.cs.algs4.StdIn:

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());
}

备用main((使用导入java.util.Scanner:

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

我用ctrl+d得到了正确的输出,我使用ctrl+z退出

最新更新