在节点中按字母顺序放置字符(Java)

在节点中按字母顺序放置字符(Java),java,linked-list,character,nodes,alphabetical,Java,Linked List,Character,Nodes,Alphabetical,我已经花了大约4天的时间试图弄清楚如何做到这一点,但我无法理解这个概念 主程序: String answer = "y"; String n = null; char nodePointer = ' '; KeyboardReader reader = new KeyboardReader(); Node start = null; Node last = null; Nod

我已经花了大约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);  
请有人帮我做如下输出:

输入一个字母:m
链表:m
是否要输入另一个字母(是/否)?y

输入一个字母:o
链接列表:mo
是否要输入另一个字母(是/否)?y

输入字母:n
链接列表:mno
是否要输入另一个字母(是/否)?y

输入字母:e
链接列表:emno
是否要输入另一个字母(是/否)?y

输入字母:y
链接列表:emnoy
是否要输入另一个字母(是/否)?n

感谢您今天使用我的程序


PS:主程序可能不起作用,因为我实在太迷茫了,我无法理解这个概念。。。是的,这是一个家庭作业(

我没有心情打开我的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));
var myList=new List();
函数GetAlphacalPlace(字符e){
返回“abcdefghijklmnopqrstuvxyz”.indexOf(Character.toUpperCase(e));
}
函数赋值顺序(字符e){
如果(myList.length==0){
myList.插入(0,e);
回来
} 
对于(var i=0,i
我认为最好添加一个
LinkedList
类,并在该类中实现一个函数,以添加一个新节点并将其放置在正确的位置以保持顺序。还可以添加一个打印函数。然后在主程序中,每次用户输入新字符时,您只需调用这两个函数。因此我尝试使用c将其精简并实现到我的代码中,但这意味着它无法从数组转换到节点。我非常确定我不能使用数组来完成此任务,只能进行节点操作。。。
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));