【数据结构】队列-链表的实现
2014-11-06 02:33
225 查看
链表相比队列最大的不同依然在于链表的插入比较省时间,但是全局操作来看还是数组很省时间,因为链表的构建和连接代价比数组的创建要高很多。
由于队列不再是头插头删了,所以需要维护一个尾指针进行尾插头删
基本结构如下
private Node head; //head using for delete before
private Node tail; //tail using of insert after
然后是入队操作
public void enqueue(String str) {
Node newNode = new Node(str);
if (isEmpty()) {
head = newNode;
tail = newNode;
} else {
tail.next = newNode;
tail = newNode;
}
}
然后是出队操作
public String dequeue() {
String deItem;
if (!isEmpty()) {
deItem = head.item;
head = head.next;
return deItem;
} else
return "Queue is empty";
}
判空
public boolean isEmpty() {
return head == null;
}
size
public int size() {
int size = 0;
while (head != null) {
head = head.next;
size++;
}
return size;
}
由于队列不再是头插头删了,所以需要维护一个尾指针进行尾插头删
基本结构如下
private Node head; //head using for delete before
private Node tail; //tail using of insert after
然后是入队操作
public void enqueue(String str) {
Node newNode = new Node(str);
if (isEmpty()) {
head = newNode;
tail = newNode;
} else {
tail.next = newNode;
tail = newNode;
}
}
然后是出队操作
public String dequeue() {
String deItem;
if (!isEmpty()) {
deItem = head.item;
head = head.next;
return deItem;
} else
return "Queue is empty";
}
判空
public boolean isEmpty() {
return head == null;
}
size
public int size() {
int size = 0;
while (head != null) {
head = head.next;
size++;
}
return size;
}
相关文章推荐
- 数据结构--单链表实现队列1
- 数据结构:双向链表实现队列与循环链表
- Lua中使用table实现的其它5种数据结构(数组、链表、队列、集合和包、StringBuild)
- 数据结构---双向链表实现队列与循环链表
- 数据结构:C_链表队列的实现
- 数据结构---队列链表c实现
- Java中链表、堆栈、队列、二叉树、散列表等数据结构的实现
- 数据结构(23)队列--单链表实现
- 数据结构:用单链表实现的队列
- 几种简单的数据结构的C++实现,树,图,链表,环形队列,栈等---栈篇
- 数据结构---队列的链表实现
- 数据结构_链表实现无限循环的"环"结构/循环队列
- 一步一步学数据结构之1--1(队列--单链表表实现--不含队头尾指针)
- 基础数据结构--队列链表实现
- 数据结构_队列_用链表动态建立释放节点实现队列各种操作_C++实现
- 数据结构学习中的简单问题(一):用链表方式实现的队列输出杨辉三角
- 一步一步学数据结构之1--1(队列--单链表实现--含队头尾指针)
- 典型数据结构--基于链表的队列实现
- 数据结构示例之用链表实现顺序队列
- 算法导论第十章 基本数据结构实现(栈,队列,链表),课后题答案