我一直在试图弄清楚如何做这个约4天,我只是无法掌握这个概念。
主程序:
String answer = "y";
String n = null;
char nodePointer = ' ';
KeyboardReader reader = new KeyboardReader();
Node start = null;
Node last = null;
Node temp = null;
do{
while(start && !(temp < last->start)){
last = start;
start = start->last;
}
if(last == temp)
temp = new Node(nodePointer,temp);
else
temp = new Node(nodePointer,start);
while(temp != null){
System.out.print(temp.letter);
temp = temp.nodeptr;
}
}while(answer.compareTo(n) == 0);
构造
public class Node {
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
链表:mo
你想输入另一个字母(y / n)吗? ÿ
输入一个字母:n
链表:mno
你想输入另一个字母(y / n)吗? ÿ
输入一封信:e
链表:emno
你想输入另一个字母(y / n)吗? ÿ
输入一封信:y
链表:emnoy
你想输入另一个字母(y / n)吗? Ñ
感谢您今天使用我的计划!
PS:主程序可能不起作用,因为我老实说这么丢失我合法地无法掌握这个概念......是的,这是一个家庭作业.. :(答案 0 :(得分:0)
我没心情打开我的Java编辑器,你需要将代码转换为Java并进行输入,但我可以在这里给你一个想法:
var myList = new List();
function GetAlphabeticalPlace(char e){
return "ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(Character.toUpperCase(e));
}
function AssignOrder(char e){
if(myList.length == 0) {
myList.insert(0, e);
return;
}
for(var i = 0, i < myList.length, i++){
if (GetAlphabeticalPlace(e) < GetAlphabeticalPlace(myList[i])){
myList.insert(i, e); //insert the char in the corresponding index
exit;
}
}
}
function PrintList(List l){
var res = "";
for (var i = 0, i < l.length, i++){
res += l[i];
}
return res;
}
console.write(PrintList(myList));