java数据结构与算法 第4章 栈和队列
来源:互联网 发布:淘宝男模特赚钱吗 编辑:程序博客网 时间:2024/05/29 07:55
1.栈
栈只允许访问一个数据项, 即最后插入的数据项,移除这个数据项才能访问倒数第二个插入的数据项,依此类推。以下是java实现的栈:
package exam;public class StackTest { public static void main(String[] args) { // TODO Auto-generated method stub StackX stackArray =new StackX(10); stackArray.push(10); stackArray.push(20); stackArray.push(30); stackArray.push(40); stackArray.push(50); while (!stackArray.isEmpty()) { long value=stackArray.pop(); System.out.println(value); //结果// 50// 40// 30// 20// 10 } }}class StackX{ private int maxSize; //栈数组大小; private long[] stackArray; private int top; public StackX(int s){ maxSize=s; //数组大小 stackArray=new long[maxSize]; //创建数组 top=-1; } //插入元素 public void push(long i){ stackArray[++top]=i; } public long pop(){ return stackArray[top--]; } public long peek(){ return stackArray[top]; } public boolean isEmpty(){ return (top==-1); } public boolean isFull(){ return (top==maxSize-1); }}
2.队列
和栈类似,但是先插进入的先出。
package exam;public class QueueTest { public static void main(String[] args) { Queue testQueue= new Queue(5); testQueue.insert(10); testQueue.insert(30); testQueue.insert(40); testQueue.insert(20); testQueue.remove(); testQueue.remove(); testQueue.remove(); testQueue.insert(60); testQueue.insert(70); testQueue.insert(80); testQueue.insert(90); while (!testQueue.isEmpty()) { long n=testQueue.remove(); System.out.println(n); } }}class Queue{ private int maxsiza; private long[] queArray; private int front; //对头 private int rear; //队尾 private int nItems; //当前数据项的个数 public Queue(int s){ maxsiza=s; queArray=new long[maxsiza]; front = 0; rear =-1; nItems = 0; } //插入的前提应该是队列不满 ISFull()为true public void insert(long j){ if(rear==maxsiza-1) rear =-1; queArray[++rear] = j; nItems++; } //remove方法的前提是队列不为空 public long remove(){ long temp =queArray[front++]; if(front == maxsiza) front = 0; nItems--; return temp; } public long peekFront(){ return queArray[front]; } public boolean isEmpty(){ return (nItems==0); } public boolean isFull(){ return (nItems==maxsiza); } public int size() { return nItems; }}
0 0
- java数据结构与算法 第4章 栈和队列
- Java数据结构和算法--栈与队列
- Java数据结构和算法--栈与队列
- Java数据结构和算法--栈与队列
- 数据结构与算法分析(第3版)练习题-第3章-表、栈和队列
- Java数据结构与算法之栈和队列
- 数据结构与算法(java)——栈和队列
- 数据结构与算法(Java语言描述)--栈和队列
- 《数据结构与算法-Python语言描述》读书笔记(5)第5章栈和队列(关键词:数据结构/算法/Python/栈/队列)
- Java 数据结构和算法 栈和队列
- 数据结构与算法(C#)--栈和队列
- 数据结构与算法之栈和队列
- 数据结构与算法____栈 和 队列
- 数据结构与算法之栈和队列
- 数据结构与算法(三) 栈和队列
- 数据结构与算法 ------ 表,栈,和队列
- 【数据结构与算法】栈和队列 备忘
- JAVA数据结构和算法:第三章(栈和队列)
- Linux主机名的更改对oracle影响
- JZOJ4886. 字符串
- 大小写转化问题
- Android学习 (九) 布局之TableLayout和 FrameLayout
- 正则表达式中容易误解的地方
- java数据结构与算法 第4章 栈和队列
- 课后知识点回顾八 泛型
- 一种智能车控制算法的设计和实现
- 关于比赛的一些心得(别的大牛),谨在此转载
- struts2笔记_day02
- Git本地版本退回
- 1486. 统计数字
- leetcode414: Third Maximum Number
- ViewPager无限循环滑动+自动播放