简体   繁体   English

在节点中按字母顺序排列字符(Java)

[英]Putting Characters in Alphabetical Order in Nodes (Java)

I have been trying to figure out how to do this for about 4 days now and I just can't grasp the concept. 大约4天以来,我一直在努力寻找解决方法,但我仍然无法理解这个概念。

Main Program: 主程序:

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

Constructor: 构造函数:

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

Can someone please help me make the output as follows: 有人可以帮我做出如下输出:

Enter a letter: m 输入字母:m
Linked list: m 链接列表:m
Would you like to enter another letter (y/n)? 您想输入另一个字母(y / n)吗? y ÿ

Enter a letter: o 输入字母:o
Linked list: mo 链接列表:mo
Would you like to enter another letter (y/n)? 您想输入另一个字母(y / n)吗? y ÿ

Enter a letter: n 输入字母:n
Linked list: mno 链接列表:mno
Would you like to enter another letter (y/n)? 您想输入另一个字母(y / n)吗? y ÿ

Enter a letter: e 输入字母:e
Linked list: emno 链接列表:emno
Would you like to enter another letter (y/n)? 您想输入另一个字母(y / n)吗? y ÿ

Enter a letter: y 输入字母:y
Linked list: emnoy 链接列表:emnoy
Would you like to enter another letter (y/n)? 您想输入另一个字母(y / n)吗? n ñ

Thank you for using my program today! 感谢您今天使用我的程序!

PS: The main program probably doesn't work because I am honestly so lost I legitimately cannot grasp the concept... And yes, this is a homework assignment.. :( PS:主程序可能不起作用,因为老实说我很迷失,我理所当然地无法理解这个概念……是的,这是一项家庭作业。.:(

I'm not in mood to open my Java editor, you'll need to convert the code to Java and to make those inputs, but I can give you an idea here: 我不想打开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));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM