双链表的优点:
对于链表中的一个结点,拥有两个指针,一个指向前驱结点,一个指向后继结点,因此可以从两个方向继续操作
双链表的缺点:
1) 每个结点需要议案家一个额外的指针,因此需要更多的空间开销
2)结点的插入或删除操作更加费时(需要更多的指针操作)、
双链表的基本操作
- 插入操作
1)前插
2)尾插
3)中间插入- 删除操作
1)删除头结点
2)删除尾结点
3)删除中间结点
Java代码实现
package dataStructure;
class DDLNode{
int data;
DDLNode previous = null;
DDLNode next = null;
public DDLNode(int d) {
data = d;
}
}
public class DDList{
//头结点
DDLNode head;
public DDList() {
head = null;
}
//获取双链表长度
int size() {
;
if(head == null) return 0;
int len = 1;
DDLNode cur = head;
while(cur.next != null) {
len++;
cur = cur.next;
}
return len;
}
//打印双链表