双向链表
双向链表是想对于单链表而言的,区别就是你单链表只有一个指针索引,而双向链表拥有两个索引,前指针和后指针,构成双向连接:
单向链表:只有指向下一个结点的引用(后驱);
双向链表:既有指向下一个结点的引用(后驱),也有指向上一个结点的引用(前驱);
优点
- 双向链表在查找元素的时候,速度比之单向链表会更快
- 拥有前驱后驱,操作更灵活
缺点
- 增加删除结点操作更繁琐一些
- 占用的资源更多,数据存储率相比单向链表更低(生产中使用单链表比双链表更多)
功能实现:
class Nodes {
Object data;// 链表中的数据
Nodes pre; // 前一节点的索引
Nodes next;// 下一节点的索引
public Nodes(Object data) {
this.data = data;// 取的元素
}
}
public class LinkList {
Nodes head;
int size;
/*
* 定义打印函数
*/
public void print() {
Nodes p = head;
while (p != null) {
System.out.print(p.data + "<-&g