数据结构(Java)--双链表
来源:互联网 发布:哈萨克歌曲软件baigie 编辑:程序博客网 时间:2024/06/05 16:21
一、双链表结点类
public class DoubleNode<T>{ public T data; public DoubleNode<T> prev, next; //前驱,后继 public DoubleNode(T data, DoubleNode<T> prev,DoubleNode<T> next) //构造方法重载 public DoubleNode(T data) public DoubleNode() public String toString()}
二、双链表的特征和操作
- 空双链表,只有头结点。
head.next==null且head.prev==null
- 非空双链表,设p指向双链表中非两端的某个结点,有:
p = p.next.prev = p.prev.next
- 双链表的插入操作
q=new DoubleNode<T>(x); q.prev = p;q.next = p.next;if (p.next!=NULL)//中间插入 p.next.prev = q; p.next=p;
- 双链表的删除操作
p.prev.next = p.next; //有p.prev!=nullif (p.next!=null) //中间删除 p.next.prev = p.prev;三、循环双链表空循环双链表有head.next==head且head.prev==head
- 循环双链表类CirDoublyList
public class CirDoublyList<T> //循环双链表类{ DoubleNode<T> head; //头指针 CirDoublyList() //构造空表 boolean isEmpty() //判空 DoubleNode<T> insert(int i, T x) //插入x为第i个元素 DoubleNode<T> insert(T x) //尾插入x //实现以下方法 String toPreviousString() //反序输出 T removeLast() //删除最后一个元素}
- 插入x为第i个元素
public DoubleNode<T> insert(int i, T x)
- 尾插入x元素,O(1)
public DoubleNode<T> insert(T x)
- 删除元素
T remove(int i) //删除第i个元素T removeLast() //删除最后一个元素
阅读全文
0 0
- 数据结构(Java)--双链表
- java数据结构 -双链表
- java数据结构(一)
- Java数据结构(栈篇)
- Java数据结构(链表篇)
- 数据结构--链表(java)
- 数据结构--栈(java)
- 数据结构--队列(java)
- 数据结构--红黑树(java)
- java数据结构(1)
- 数据结构(java)----MyArrayList
- 数据结构(java)---MyLinkedList
- java数据结构(单链表)
- 数据结构(java)----BinarySearchTree
- Java 数据结构(链表)
- 数据结构-表(java)
- 数据结构(Java)--图
- 数据结构(Java)--排序
- hdu1584 蜘蛛牌dfs
- 634. Find the Derangement of An Array
- 组合问题的算法实现
- CSS 盒子模型
- 【MyBatis学习04】mapper代理方法开发dao
- 数据结构(Java)--双链表
- java种复制文件的N种方法
- 教你如何使用automake生成Makefile文件
- 【LeetCode】Integer to English Words
- Head First设计模式第二章——观察者模式
- 【Linux】权限问题:su和sudo
- HDU 1028 (母函数或者dp)
- Linux — IPC通信之共享内存
- 创建一个简单的student的demo