java双向循环链表怎么实现

35次阅读
没有评论

共计 1192 个字符,预计需要花费 3 分钟才能阅读完成。

要实现 java 双向循环链表,你需要创建一个 Node 类来表示链表中的节点。Node 类应该有一个数据字段来存储节点的值,以及两个指针字段 prev 和 next 来分别指向上一个节点和下一个节点。然后,你需要创建一个双向循环链表类,该类应该有一个指向链表头节点的指针字段 head。

以下是一个简单的双向循环链表的实现示例:

public class Node {public int data;
    public Node prev;
    public Node next;
    
    public Node(int data) {this.data = data;
    }
}

public class DoublyLinkedList {public Node head;

    public void insertAtEnd(int data) {Node newNode = new Node(data);
        
        if (head == null) {
            head = newNode;
            head.prev = head;
            head.next = head;
        } else {Node lastNode = head.prev;
            
            newNode.prev = lastNode;
            newNode.next = head;
            
            lastNode.next = newNode;
            head.prev = newNode;
        }
    }

    public void display() {if (head == null) {System.out.println("Doubly linked list is empty.");
            return;
        }
        
        Node currentNode = head;
        
        do {System.out.print(currentNode.data + " ");
            currentNode = currentNode.next;
        } while (currentNode != head);
        
        System.out.println();}
}

public class Main {public static void main(String[] args) {DoublyLinkedList list = new DoublyLinkedList();
        
        list.insertAtEnd(1);
        list.insertAtEnd(2);
        list.insertAtEnd(3);
        
        list.display(); // Output: 1 2 3
    }
}

在上面的示例中,insertAtEnd 方法用于在链表末尾插入一个新节点。如果链表为空,则将新节点设置为链表的头节点,并将其 prev 和 next 字段都指向自身。否则,将新节点插入到链表末尾,并更新相关节点的 prev 和 next 字段。

display 方法用于遍历链表并打印每个节点的值。由于链表是循环的,所以我们需要使用 do-while 循环来确保至少遍历一次链表。

在 main 方法中,我们创建了一个双向循环链表,并在末尾插入了三个节点。然后,我们调用 display 方法来显示链表中的所有节点的值。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-12发表,共计1192字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)