数据结构学习之队列的Java实现
来源:互联网 发布:2016年网络流行语串词 编辑:程序博客网 时间:2024/04/29 08:30
介绍
队列是一种先进先出的数据结构,它只允许在两端执行插入和删除操作。执行插入操作的叫队尾,执行删除操作的叫队头。队列有两种实现方式,一种用数组实现,叫做顺序队列。另一种用链表实现,叫做链式队列。
顺序队列
SQueue .java
package Queue;/** * Created by xiaojian on 2017/7/19. * 顺序队列 */public class SQueue {// 队列长度 private int size = 0;// 初始长度 private Object[] data = new Object[5];// 第一个元素位置 private int front = 0;// 当前元素位置 private int rear = 0;// 入队 public void push(Object obj){ if(isFull()){ increSize(); front=0; } //循环队列,计算出下一个为空的位置 rear = (front+size)%data.length; data[rear] = obj; size++; }// 出队 public Object pop(){ if(isEmpty()){ throw new RuntimeException("队列为空"); } Object obj = data[front]; data[front] = null;// 计算删除后队头的位置 front = (front+1)%data.length; size--; return obj; }// 遍历 public void display(){ while(!isEmpty()){ System.out.println(pop()); } }// 扩容 public void increSize(){ Object[] newData = new Object[data.length * 2]; System.arraycopy(data,0,newData,0,data.length); data = newData; }// 判断是否已满 public boolean isFull(){ return size == data.length; }// 判断是否为空 public boolean isEmpty(){ return size==0; }// 返回队列长度 public int getSize(){ return size; }}
链式队列
链式队列和单链表结构一样,只不过只能从队尾插入,从队头删除。
package Queue;/** * Created by xiaojian on 2017/7/19. * 链式队列 */public class LinkQueue { private int size = 0; private Node front = null; private Node rear = null;// 入队 public void push(Object o){ Node node = new Node(); node.setData(o);// 队列为空则赋值给front if(isEmpty()){ front=rear=node; }else { rear.setNext(node); rear=node; } size++; }// 出队 public Object pop(){ if(isEmpty()){ throw new RuntimeException("队列为空"); } Node node = front; front = null; front = node.getNext(); size--; return node.getData(); }// 遍历 public void display(){ while(!isEmpty()){ System.out.println(pop()); } } //判空 public boolean isEmpty(){ return size == 0; }}
阅读全文
1 0
- 数据结构学习之队列的Java实现
- 数据结构学习之队列的数组实现
- 数据结构之队列的java实现
- 数据结构之队列的实现(JAVA)
- java数据结构之线性队列的实现
- java数据结构之链式队列的实现
- 数据结构之队列的Java实现
- JAVA数据结构之顺序队列的实现
- JAVA数据结构之链式队列的实现
- JAVA数据结构之循环队列的实现
- java 数据结构 之 队列的实现 (二)
- 数据结构 --- Java之队列的实现
- java 实现数据结构之队列
- java 实现数据结构之队列
- 数据结构之-java实现-队列
- 数据结构之队列【java实现】
- 数据结构之java实现队列
- 数据结构之队列的实现
- 九种基本数据类型,以及他们的封装类 分类
- 学习站
- 最小二乘法拟合亚像素坐标时不准确问题查找
- tornado 自定义错误页面
- 在Android中实现简易的登录界面
- 数据结构学习之队列的Java实现
- POJ1733 Parity game(并查集模型+带权并查集+离散化)
- Mybatis 异常Mapped Statements collection already contains value for
- 两种单例设计模式
- 走入jquery的世界
- 漫步最优化十六——优化的一般问题
- 牛顿迭代法求方程根--C语言
- POJ
- HTTP最后的挣扎,深度解析HTTPS的原理与使用