栈,队列,优先级队列

Posted 一个字帅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈,队列,优先级队列相关的知识,希望对你有一定的参考价值。

---恢复内容开始---

一.栈

1.栈:先进后出,后进先出,每次访问一个数据项,即最后一个添加的数据项(每次添加的数据放到最后)。数据入栈和出栈的时间复杂度O(1),栈不需要移动和比较数据。

2.代码

 1 public class Stack {
 2     private int maxsize;
 3     private int[] arr;
 4     private int top;
 5     
 6     public Stack(int s){
 7         maxsize = s;
 8         arr = new int[maxsize];
 9         top = -1;
10     }
11     
12     public void push(int s){
13         arr[++top] = s;
14     }
15     
16     public int delete(){
17         return arr[top--];
18     }
19     
20     public boolean isEmpty(){
21         return top == -1;
22     }
23     
24     public boolean isFull(){
25         return top == maxsize-1;
26     }
27     
28     public static void main(String[] args) {
29         Stack s = new Stack(10);
30         s.push(5);
31         s.push(10);
32         s.push(2);
33         s.push(4);
34         while(!s.isEmpty()){
35             int a = s.delete();
36             System.out.println(a);
37         }
38     }
39 
40 }

二.队列

1.队列:先进先出,每次操作一个数据项,先进去的。数据放到最后,从最前面开始拿,所以需要两个标记,队头和队尾。

    为了解决队列不满,又不能添加数据的问题,采用环绕式处理。

2.代码:

 

 

---恢复内容结束---

以上是关于栈,队列,优先级队列的主要内容,如果未能解决你的问题,请参考以下文章

栈,队列与优先队列

单调队列单调栈优先队列模板

栈队列双端队列优先队列

队列Queue栈LifoQueue优先级队列PriorityQueue

宽度与深度优先遍历

STL栈+队列+优先队列(详)+ 拯救行动题解