我正在研究一个Java项目,该项目将节点添加到具有int值的链表的末尾。但是,节点值必须在链表内的0 .... n-1之间。我已经编写了有关如何在列表末尾添加元素并检查元素是否已存在的代码。问题是如何逐步添加元素并从0开始。
例如{}加3:错误(您必须加0){0}加2:错误(必须加1)我已经写了下面的代码:
class ItemNode {
public int item;
public ItemNode next;
public ItemNode(int item) {
this.item = item;
this.next = null;
}
}
class ItemsList {
private int nbNodes;
private ItemNode first;
private ItemNode last;
public ItemsList() {
this.first = null;
this.last = null;
this.nbNodes = 0;
}
public int size() {
return nbNodes;
}
public boolean empty() {
return first == null;
}
public int append(int item) {
ItemNode node = new ItemNode(item);
if(this.empty())
{
first=node;
last=node;
nbNodes++;
}
else if (member(this.first,node.item))
{
System.out.println("Node already exists ");
}
else
{
last.next=node;
last=node;
nbNodes++;
}
return nbNodes;
}
简单地nbNodes
将充当“这是谁的转弯”例如,如果列表为空,则nbNodes等于零,这意味着下一个应为零的元素,如果nbNodes等于五,则下一个元素应为五,依此类推。]
因此,该过程将检查append方法是否要传入的数字等于nbNodes
,并以此为基础进行操作。
您可能会考虑将其名称更改为适合现在的职责,或为此任务添加一个新名称。