gpt4 book ai didi

Java循环链表,删除不一致的地方

转载 作者:行者123 更新时间:2023-11-30 07:50:12 26 4
gpt4 key购买 nike

好吧,所以我的想法是移动到循环列表中的每个节点(在本例中为用户)并询问他们是否想要注销,他们会随机给出是或否答案,直到每个人都登录为止离开。大多数情况下我运行程序时似乎都是这种情况,但有时用户会重新登录,这是不应该发生的,我将发布删除方法和我正在使用的显示方法。

public void displayLinkedList() {
temp=first;
int i = 1;

do {
boolean rand=randomBoolean();

if(rand) {
System.out.println("USER : "+temp.data+" Logged off ");
temp.isloggedOut=true;
Node placeholder = temp.nextNode; //save value of temp.next before we delete temp
delete(temp);
Node.numOfUsers--;
temp = placeholder; //reassign "temp" to the appropriate next value.

} else if(!temp.isloggedOut) {
System.out.println("USER : "+temp.data+" Logged on ");
temp=temp.nextNode;
}

} while(Node.numOfUsers!=0);

}


public void delete(Node n) {
if(Node.numOfUsers == 0 || n == null) return; // 0 nodes or null parameter.

Node temp = first;

if(temp.nextNode == null) { //only one node
temp = null; //simply delete it
} else {
while(temp.nextNode != n) {
temp = temp.nextNode;
if(temp == first) { //if we circle the entire list and don't find n, it doesn't exist.
return;
}
}
temp.nextNode = n.nextNode; // perform the switch, deleting n
}
}

最佳答案

我认为你的问题出在这一行

else if(!rand)

添加一个 boolean 值来检查用户是否已被删除

else if(!rand && !userExists)

关于Java循环链表,删除不一致的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33402934/

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