привет, я пытаюсь реализовать связанный список в Java.Так как это домашнее задание, я не могу использовать встроенный LinkedList из Java.
В настоящее время я реализовал мой класс Node
public class WordNode
{
private String word;
private int freq;
private WordNode next;
/**
* Constructor for objects of class WordNode
*/
public WordNode(String word, WordNode next )
{
this.word = word;
this.next = next;
freq = 1;
}
/**
* Constructor for objects of class WordNode
*/
public WordNode(String word)
{
this(word, null);
}
/**
*
*/
public String getWord()
{
return word;
}
/**
*
*/
public int getFreq(String word)
{
return freq;
}
/**
*
*/
public WordNode getNext()
{
return next;
}
/**
*
*/
public void setNext(WordNode n)
{
next = n;
}
/**
*
*/
public void increment()
{
freq++;
}
}
и мой "LinkedList"
public class Dictionary
{
private WordNode Link;
private int size;
/**
* Constructor for objects of class Dictionary
*/
public Dictionary(String L)
{
Link = new WordNode(L);
size = 1;
}
/**
* Return true if the list is empty, otherwise false
*
*
* @return
*/
public boolean isEmpty()
{
return Link == null;
}
/**
* Return the length of the list
*
*
* @return
*/
public int getSize()
{
return size;
}
/**
* Add a word to the list if it isn't already present. Otherwise
* increase the frequency of the occurrence of the word.
* @param word The word to add to the dictionary.
*/
public void add(String word)
{
Link.setNext(new WordNode(word, Link.getNext()) );
size++;
}
У меня проблемы с правильной реализацией моего метода добавления, так как он должен проверить список, чтобы узнать, существует ли уже слово, а если его нет, добавить его в список и сохранить его в алфавитном порядке.Я работал над циклом, но не могу заставить его работать.
Редактировать: я пытался напечатать список, но он не напечатает больше, чем первое добавленное слово public void print () {
WordNode wn = Link;
int size = 0;
while(wn != null && size <= getSize()){
System.out.println(wn.getWord()+","+wn.getFreq(wn.getWord()));
size++;
}
}
Любая помощь приветствуется