LinkedList节点

时间:2013-11-17 06:53:49

标签: java dictionary linked-list nodes

我有一个关于我需要完成的作业的问题。 编写一个菜单驱动的程序,它接受单词及其含义,或以字典顺序显示单词列表(即在字典中)。当要将条目添加到字典时,必须先将该单词作为一个字符串输入,然后将该含义输入为单独的字符串。一个单词可能有多个含义,可以在不同的时间输入。发生这种情况时,将每个连续的含义放在单独的行上。这个新的含义必须以破折号开头。例如,如果您按以下顺序输入以下单词及其含义:Library,School,Cup和School,那么您的输出应该是显示,如图1所示。

使用链表的概念来执行此练习。您至少需要以下课程: •WordMeaning类,包含单词的名称及其含义。 •WordMeaningNode类,用于创建信息节点及其链接字段。 •一个WordList类,用于创建和维护单词及其含义的链接列表。 •测试类的Dictionary类。

问题涉及第二个子弹。我不确定如何为WordMeaningNode创建构造函数。这就是我到目前为止所做的:

import java.lang.*;
import java.util.*;
public class WordMeaningNode 


{
  String information;
  WordMeaningNode locale;




  public WordMeaningNode(WordMeaning data) 
//WordMeaning is a class that takes two strings(Word and definition) and stores it.
//Entry is a method that returns the strings stored in WordMeaning.

  {
      information = data.Entry();
      locale = null;
  }

  public String getMeaning()

  {
      return information;
  }

  public WordMeaningNode getNext()

  {
      return locale.getNext();
  }

}

1 个答案:

答案 0 :(得分:0)

一些事情:

首先,我认为你最好传入data.entry()产生的String。那就是你可以用以下方式创建构造函数:

public WordMeaningNode(String entry){
   int index = entry.indexOf(',') + 1; //Assuming your String is comma delimited.
   information = entry.substring(0, index);
   String next = entry.substring(index);
   if(next.isEmpty()){
      locale = null;
   } else {
      locale = new WordMeaningNode(next);
   }
}

其次,你的getNext()方法是否正常工作?似乎总会给出一个空指针异常。

祝你好运!