Java中循环双链表的陷入状态
我有点新的编码,所以我想我的问题应该是相当基本的哈哈 基本上,我在Java程序中使用循环双链表。 我已经成功地实现了insert、print和其他方法,但是我在两种方法(搜索和删除)上遇到了一些问题 我有一个list类成功地处理了insert代码:Java中循环双链表的陷入状态,java,list,if-statement,doubly-linked-list,circular-list,Java,List,If Statement,Doubly Linked List,Circular List,我有点新的编码,所以我想我的问题应该是相当基本的哈哈 基本上,我在Java程序中使用循环双链表。 我已经成功地实现了insert、print和其他方法,但是我在两种方法(搜索和删除)上遇到了一些问题 我有一个list类成功地处理了insert代码: public class ListaDC { private NodoLCD head; private NodoLCD bottom; public void inserta(Planetas p) {
public class ListaDC {
private NodoLCD head;
private NodoLCD bottom;
public void inserta(Planetas p) {
if (head == null) {
head = new NodoLCD(p);
bottom = head;
bottom.setNext(head);
head.setBack(bottom);
} else if (p.getId() > head.getDato().getId()) {
NodoLCD aux = new NodoLCD(p);
aux.setNext(head);
head = aux;
bottom.setNext(head);
head.setBack(bottom);
} else if (bottom.getDato().getId() >= p.getId()) {
bottom.setNext(new NodoLCD(p));
bottom = bottom.getNext();
bottom.setNext(head);
head.setBack(bottom);
} else {
NodoLCD aux = head;
while (aux.getNext().getDato().getId() > p.getId()) {
aux = aux.getNext();
}
NodoLCD temp = new NodoLCD(p);
temp.setNext(aux.getNext());
temp.setBack(aux);
aux.setNext(temp);
temp.getNext().setBack(temp);
}
}
下面是我的节点类的快照:
private Planetas dato;
private NodoLCD next;
private NodoLCD back;
public NodoLCD(Planetas dato) {
this.dato = dato;
}
它有所有的接球手、二传手和投球手
我有另一个叫做行星的类,它有一些变量,比如名字,位置,类型
问题是这两种方法在同一部分上都失败了(如果条件允许):
public boolean existe(int-id){
布尔值esta=false;
if(head!=null){
如果((id>=head.getDato().getId())&&(不幸的是,我认为我们没有足够的信息来帮助解决这个问题。考虑阅读一些关于如何创建代码片段的提示,这些代码片段很容易让我们重现你的发行版。”SilvioMayolo,谢谢你的评论,我只是添加了更多的信息。你认为这就足够了吗?再次感谢:
public boolean existe(int id) {
boolean esta = false;
if (head!= null) {
if ((id >= head.getDato().getId()) && (id <= last.getDato().getId())) {
NodoLCD aux = cabeza;
while (aux != bottom&& aux.getDato().getId() < id) {
aux = aux.getNext();
}
esta = (aux.getDato().getId() == id);
}
}
return esta;
}