【发布时间】:2015-04-01 18:34:01
【问题描述】:
所以,我想弄清楚如何为家庭作业执行以下操作:请编写一个程序,要求用户输入一个字母。在链表末尾插入字母并打印出链表。要求另一个字母并插入到链表的末尾并打印出链表。继续,直到用户声明他们没有更多的字母要输入。然后,构建另一个链接列表,它会要求用户输入一个字母,一次一个,然后按字母顺序将其插入到列表中。每次插入后,打印出列表并继续,直到用户输入完字母。
这就是我到目前为止所拥有的,并且我已经被困了大约一个星期了......
导入 TerminalIO.*;
公共类 LinkedLists {
public static void addLine(){
System.out.println("");
}
public static void main(String[] args) {
String answer = "y";
String n = null;
char nodePointer = ' ';
KeyboardReader reader = new KeyboardReader();
Node start = new Node();
Node temp = new Node();
do{
System.out.print("Enter a letter: ");
nodePointer = reader.readChar();
start.letter = nodePointer;
start.nodeptr = new Node(start.letter);
//start.nodeptr.letter = temp.letter;
start = start.nodeptr;
System.out.print("Linked list: ");
temp = start;
while(temp != null){
System.out.print(start.letter);
temp = temp.nodeptr;
}
addLine();
System.out.print("Would you like to enter another letter (y/n)? ");
n = reader.readLine();
addLine();
}while(answer.compareTo(n) == 0);
}
}
构造函数:
公共类节点{
char letter;
Node nodeptr;
Node(){
letter = ' ';
nodeptr = null;
}
Node(char x){
letter = x;
nodeptr = null;
}
Node(char x, Node y){
letter = x;
nodeptr = y;
}
}
我得到的输出是:
输入一个字母:m
链表:m
您要输入另一个字母 (y/n) 吗?是的
输入一个字母:o
链表:o
您要输入另一个字母 (y/n) 吗? n
无论我输入什么字母都会这样,因为我输入的字母与它自己的列表中出现的字母相同...
它应该输出什么(第一部分):
输入一个字母:m
链表:m
您要输入另一个字母 (y/n) 吗?是的
输入一个字母:o
链表:mo
您要输入另一个字母 (y/n) 吗?是的
输入一个字母:n
链表:mon
您要输入另一个字母 (y/n) 吗?是的
输入一个字母:e
链表:mone
您要输入另一个字母 (y/n) 吗?是的
输入一个字母:y
链表:钱
您要输入另一个字母 (y/n) 吗?是的
那么对于程序的第二部分,它应该按字母顺序输出,如下所示:
输入一个字母:m
链表:m
您要输入另一个字母 (y/n) 吗?是的
输入一个字母:o
链表:mo
您要输入另一个字母 (y/n) 吗?是的
输入一个字母:n
链表:mno
您要输入另一个字母 (y/n) 吗?是的
输入一个字母:e
链表:emno
您要输入另一个字母 (y/n) 吗?是的
输入一个字母:y
链表:emnoy
您要输入另一个字母 (y/n) 吗?是的
如果有人可以帮助我指出正确的方向或编写代码,那两者都是有益的,因为我现在真的迷失了,我应该如何操纵节点来做我想让他们做的事情。
【问题讨论】:
-
告诉我们更多关于你得到的输出。这将使人们更容易为您提供帮助。
-
修复了输出。感谢 Isaac 告诉我这件事。
标签: java linked-list character nodes