gpt4 book ai didi

Java链表搜索方法

转载 作者:行者123 更新时间:2023-11-29 05:33:30 25 4
gpt4 key购买 nike

你好,所以我无法完成我的作业,因为我很难弄清楚如何在我的链表中设置搜索方法。现在我仍然想学习如何配置链表,但我不能做任何如果我无法弄清楚搜索方法,则使用其他方法,例如删除或替换。出于某种原因,我的结果一直为空这就是我到目前为止的结果..

public class WordList {
private WordMeaningNode list;
WordList()
{
list = null;
}
void add(WordMeaning b)
{
WordMeaningNode temp = new WordMeaningNode(b);
try
{
temp.Next = list;
list = temp;
}
catch(NullPointerException e)
{
System.out.println("Null Pointer Exception");
}
}
public String toString()
{
String result="";
WordMeaningNode current = list;
while (current != null)
{
result += current.Words.word + " - " + current.Words.meaning + "\n";
current = current.Next;
}
return result;
}
public WordMeaning findword (WordMeaning Word)
{

WordMeaningNode Checker = new WordMeaningNode(Word);

boolean found = false;

if (list.isEmpty() == true)
{
return null;
}
else
{
while(list.Next != null && !found)
{
if(list.Words.word.compareTo(Checker.Words.word)== 0)
{
found = true;
}
else
{
list = list.Next;
found = false;
}
}
}
if(found == true)
{
return list.Words;
}
else
{
return null;
}
}

最佳答案

您的版本实际上在每次破坏列表的迭代中更改了 list(实际上是列表的根(或第一个)节点)本身。您的查询方法不应更改列表本身。只需在您的 while 循环中使用临时(本地)节点变量(我的称为 current),如下所示:

public WordMeaning findWord (WordMeaning word)
{
if (list.isEmpty())
{
return null;
}

boolean found = false;
WordMeaningNode current = list;
while(current != null)
{
if(current.Words.word.compareTo(word)== 0)
{
found = true;
break;
}
current = current.Next;
}
return current;
}

关于Java链表搜索方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20298496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com