<八>java数据结构与算法 队列 与 循环队列
来源:互联网 发布:数据库审计产品排行榜 编辑:程序博客网 时间:2024/04/28 05:11
核心思想:
队列与栈不同的是:栈是“先进后出,后进先出”,而队列是“先进先出”;可以讲队列看作是一个水管,一头进,另外一头出....
同样这个很简单,话不多说直接上代码案例,一看你就懂了
非循环队列:
public class Queue {// 数组private long[] arr;// 最大空间private int maxSize;// 有效元素大小private int elems;// 队头private int font;// 队尾private int end;public Queue(int maxSize) {this.maxSize = maxSize;arr = new long[maxSize];elems = 0;font = 0;end = -1;}// 插入数据public void insert(long value) {arr[++end] = value;elems++;}// 移除数据public long remove() {elems--;return arr[font++]; }// 是否为空public boolean isEmpty() {return (elems == 0);}// 是否满了public boolean isFull() {return (end == maxSize - 1);}// 返回有效元素大小public int size() {return elems;}}
public class TestQueue {public static void main(String[] args) {Queue queue = new Queue(5);System.out.println(queue.isEmpty());queue.insert(50);queue.insert(20);queue.insert(10);queue.insert(2);queue.insert(1);System.out.println(queue.isEmpty());System.out.println(queue.isFull());while(!queue.isEmpty()) {System.out.println(queue.remove());}queue.insert(10);}}
下面是介绍循环队列的:
<span style="font-size:18px;">public class MyQueue {// 数组private long[] arr;// 最大空间private int maxSize;// 有效元素大小private int elems;// 队头private int font;// 队尾private int end;public MyQueue(int maxSize) {this.maxSize = maxSize;arr = new long[maxSize];elems = 0;font = 0;end = -1;}// 插入数据public void insert(long value) {if(end == maxSize - 1) {end = -1;}arr[++end] = value;elems++;}// 移除数据public long remove() {long tmp = arr[font++];if(font == maxSize) {font = 0;}elems--;return tmp; }// 是否为空public boolean isEmpty() {return (elems == 0);}// 是否满了public boolean isFull() {return (elems == maxSize);}// 返回有效元素大小public int size() {return elems;}}</span>测试:
<span style="font-size:18px;">public class TestMyQueue {public static void main(String[] args) {MyQueue mq = new MyQueue(5);System.out.println(mq.isEmpty());mq.insert(30);mq.insert(20);mq.insert(10);mq.insert(2);mq.insert(1);mq.insert(20);while(!mq.isEmpty()) {long tmp = mq.remove();System.out.println(tmp + " ");}}}</span>
0 0
- <八>java数据结构与算法 队列 与 循环队列
- 数据结构与算法系列-队列-循环队列
- 数据结构与算法之八 队列
- Java数据结构与算法:队列
- Java数据结构与算法---队列
- java数据结构与算法-队列
- 《Java数据结构与算法》笔记-CH4-4循环队列
- 数据结构与算法之—循环队列
- 数据结构与算法之循环队列
- 数据结构与算法——循环队列
- 数据结构与算法(7)循环队列
- 数据结构与算法(Java描述)-9、队列以及顺序循环队列的应用
- 【数据结构与算法】队列
- 数据结构与算法《队列》
- 数据结构与算法-队列
- 数据结构与算法--队列
- 数据结构与算法---队列
- 数据结构与算法-队列
- leetcode 144 —— Binary Tree Preorder Traversal
- 堆排序算法(参考More Window的代码)
- crossapp CADrawerController控件使用
- Unsupported major.minor version 51.0 myeclipse2013 2014 同时用
- APP和服务器通讯为什么要用接口?
- <八>java数据结构与算法 队列 与 循环队列
- mysql常见的日期转换格式
- centos 7 图形界面 文本界面切换
- 排序算法小结
- POJ 1836 Alignment
- openal 基本接口介绍
- 数据库类型对应java类型汇总(mysql、sql server和oracle)
- 500 OOPS: cannot change directory:/root
- vs2013 密钥