数据结构与算法(java)——栈和队列
2017-07-03 17:40
274 查看
栈:栈又名堆栈,它是一种运算受限的线性表,其限制是只能在表的一端进行插入和删除操作,这一端称为栈顶。插入新的元素又称为进栈、入栈或压栈,删除元素又称为出栈或者退栈。
代码实现:
队列:和栈一样,队列也是一种受限的线性表,不一样的是队列只能在队头(front)删除元素,在队尾(rear)插入元素。
代码实现:
总结:栈和队列都是一种受限的线性表,不同的是:栈是只能再一端进行操作,后进先出;而队列则是只能在一端进行插入,另一端删除,先进先出。
代码实现:
public class MyStack { //底层实现是一个数组 private long[] arr; //栈顶 private int top; public MyStack() { arr = new long[10]; top = -1; } public MyStack(int maxSize){ arr = new long[maxSize]; top = -1; } /** * 添加数据 * @param l */ public void pusk(long l) { arr[++top] = l; } /** * 移除数据 * @return */ public long pop(){ return arr[top--]; } /** * 查看数据 */ public long peek(){ return arr[top]; } /** * 判断是否为空 * @return */ public boolean isEmpty(){ return top == -1; } /** * 判断是否满了 * @return */ public boolean isFull(){ return top == arr.length - 1; } }
队列:和栈一样,队列也是一种受限的线性表,不一样的是队列只能在队头(front)删除元素,在队尾(rear)插入元素。
代码实现:
public class MyCircleQueue { // 底层实现数组 private long[] arr; // 队头 private int front; // 队尾 private int rear; // 元素 private int elements; public MyCircleQueue() { arr = new long[10]; elements = 0; front = 0; rear = -1; } public MyCircleQueue(int maxSize) { arr = new long[maxSize]; elements = 0; front = 0; rear = -1; } /** * 添加数据<br/> * 队尾添加 * * @param value */ public void insert(long value) { if(rear == arr.length - 1){ rear = -1; } arr[++rear] = value; elements++; } /** * 移除数据<br/> * 队头移除 * * @return */ public long remove() { long result = arr[front++]; if(front == arr.length){ front = 0; } elements--; return result; } /** * 查看队头数据 * * @return */ public long peek() { return arr[front]; } /** * 是否为空 * * @return */ public boolean isEmpty() { return elements == 0; } /** * 是否满了 * * @return */ public boolean isFull() { return elements == arr.length; } }
总结:栈和队列都是一种受限的线性表,不同的是:栈是只能再一端进行操作,后进先出;而队列则是只能在一端进行插入,另一端删除,先进先出。
相关文章推荐
- Java数据结构与算法(10) - ch05链表实现队列(Link Queue)
- <八>java数据结构与算法 队列 与 循环队列
- Java数据结构与算法之队列
- 数据结构与算法(Java描述)-10、链式队列以及优先级队列的应用
- 【Java数据结构学习笔记之三】Java数据结构与算法之队列(Queue)实现
- java实现顺序表,链表,栈,队列_数据结构与算法
- 数据结构与算法 ---- 线性表 及Java实现 顺序表、链表、栈、队列
- java数据结构与算法-双端链表实现队列
- 数据结构与算法 ---- 线性表 及Java实现 顺序表、链表、栈、队列
- 数据结构与算法Java描述 队列
- Java数据结构与算法---队列
- 【java数据结构与算法学习】队列
- Java数据结构与算法(4) - ch04队列(Queue和PriorityQ)
- java数据结构与算法之双向循环队列的数组实现方法
- Java数据结构与算法之顺序表和链表实现栈和队列
- Java数据结构与算法(三)-栈和队列
- java 栈,队列,链表,双链表,树
- Java 理论与实践: 线程池与工作队列
- java 栈,队列,链表,双链表,树