Java数据结构中实现双向链表,可以按照以下步骤进行:
1.定义节点类Node,包含成员变量value、previous、next:
public class Node {
int value;
Node previous;
Node next;
public Node(int v) {
value = v;
}
}
2.定义双向链表类DLinkedList,初始化头尾节点head和tail:
public class DLinkedList {
Node head;
Node tail;
public DLinkedList() {
head = new Node(0);
tail = new Node(0);
head.next = tail;
tail.previous = head;
}
}
3.实现双向链表的添加节点方法 addNode(int val):
public void addNode(int val) {
Node newNode = new Node(val);
newNode.previous = tail.previous;
tail.previous.next = newNode;
newNode.next = tail;
tail.previous = newNode;
}
4.实现双向链表的删除节点方法 deleteNode(int val):
public void deleteNode(int val) {
Node current = head.next;
while (current != tail) {
if (current.value == val) {
current.previous.next = current.next;
current.next.previous = current.previous;
break;
}
current = current.next;
}
}
5.实现双向链表的打印方法 printList():
public void printList() {
Node current = head.next;
while (current != tail) {
System.out.print(current.value + " ");
current = current.next;
}
}
示例1:创建一个双向链表,添加四个节点并打印
DLinkedList list = new DLinkedList();
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.addNode(4);
list.printList();
输出结果为:1 2 3 4
示例2:在示例1的基础上删除节点3并打印
list.deleteNode(3);
list.printList();
输出结果为:1 2 4
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java数据结构实现双向链表功能 - Python技术站