数据结构之动态队列的java简单实现
2018-01-29 11:53
507 查看
动态队列也是基于链表结构的实现,
1、构建节点
public class QueueNode<T>{
private T t;
private QueueNode<T> queueNode;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
public QueueNode<T> getQueueNode() {
return queueNode;
}
public void setQueueNode(QueueNode<T> queueNode) {
this.queueNode = queueNode;
}
}
2、构建列队
public class MyQueue<T> {
private QueueNode<T> font;
private QueueNode<T> end;
private int queueSize;
public void init() {
QueueNode<T> headNode = new QueueNode<T>();
this.queueSize = 0;
this.font = headNode;
this.end = headNode;
}
/**
* 入队
* @param node
*/
public void add(QueueNode<T> node) {
if(this.font.equals(this.end)) {
QueueNode<T> endNode = new QueueNode<T>();
node.setQueueNode(endNode);
this.font = node;
this.end = this.font.getQueueNode();
this.queueSize++;
}else {
QueueNode<T> endNode = new QueueNode<T>();
node.setQueueNode(endNode);
this.end.setT(node.getT());
this.end.setQueueNode(node.getQueueNode());
this.end = this.end.getQueueNode();
this.queueSize++;
}
}
/**
* 出队
* @return 队首节点,这里可以改成直接返回节点数据域部分更好
*/
public QueueNode<T> peak(){
if(this.font.equals(this.end)) {
System.out.println("列队目前已经没有队员了");
return null;
}else {
QueueNode<T> node = this.font;
this.queueSize--;
this.font = node.getQueueNode();
return node;
}
}
public int size() {
return this.queueSize;
}
}
1、构建节点
public class QueueNode<T>{
private T t;
private QueueNode<T> queueNode;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
public QueueNode<T> getQueueNode() {
return queueNode;
}
public void setQueueNode(QueueNode<T> queueNode) {
this.queueNode = queueNode;
}
}
2、构建列队
public class MyQueue<T> {
private QueueNode<T> font;
private QueueNode<T> end;
private int queueSize;
public void init() {
QueueNode<T> headNode = new QueueNode<T>();
this.queueSize = 0;
this.font = headNode;
this.end = headNode;
}
/**
* 入队
* @param node
*/
public void add(QueueNode<T> node) {
if(this.font.equals(this.end)) {
QueueNode<T> endNode = new QueueNode<T>();
node.setQueueNode(endNode);
this.font = node;
this.end = this.font.getQueueNode();
this.queueSize++;
}else {
QueueNode<T> endNode = new QueueNode<T>();
node.setQueueNode(endNode);
this.end.setT(node.getT());
this.end.setQueueNode(node.getQueueNode());
this.end = this.end.getQueueNode();
this.queueSize++;
}
}
/**
* 出队
* @return 队首节点,这里可以改成直接返回节点数据域部分更好
*/
public QueueNode<T> peak(){
if(this.font.equals(this.end)) {
System.out.println("列队目前已经没有队员了");
return null;
}else {
QueueNode<T> node = this.font;
this.queueSize--;
this.font = node.getQueueNode();
return node;
}
}
public int size() {
return this.queueSize;
}
}
相关文章推荐
- java 数据结构 队列的简单实现
- 【数据结构+Java】Java实现简单队列、循环队列操作
- Java数据结构之队列的实现以及队列的应用之----简单生产者消费者应用
- Java基础课程学习总结,使用LinkedList简单模拟队列数据结构和堆栈数据结构的实现
- java数据结构之LinkedQueue(用链表实现的双端单向队列)
- 数据结构_队列_用链表动态建立释放节点实现队列各种操作_C++实现
- 简单数据结构的实现之循环队列
- java数据结构,实现栈/队列
- 数据结构队列之环形队列的动态数组实现:queue
- 用java实现简单选择排序的动态演示
- Java简单队列的实现
- 请实现一个队列,既可以存放整数,又可以存放字符串。简单的说,队列是一种数据结构,按照先进先出的顺序管理进、出队列的元素
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- Java动态显示文件上传进度的简单实现
- 简单数据结构的实现之链队列
- Java之简单的图片动态显示(实现类似GIF动画结果)
- Java反射之JDK动态代理实现简单AOP
- java实现栈,队列数据结构
- 使用Java动态代理实现简单AOP
- Java动态代理实现简单AOP