2、栈和队列

栈和队列是运算受限的线性表。

栈:只能后进来的元素先出去。

队列:只能先进来的元素先出去。


 

1、栈(Stack)

后进先出,可以使用数组和单链表实现。

入栈:push

出栈:pop

取出栈顶元素:peek


 

2、队列(Queue)

先进先出,可以使用循环数组和单链表实现

队尾,进来的一端:rear

队首,出去的一端:front

入队:enqueue

出队:dequeue

2.1 双端队列

指两端都可以入队和出队的队列。

若只允许一段出入,则等同于栈。


 

3、Java中的栈和队列

  栈:Stack类,它继承于Vector类,已不推荐使用。

  队列:Queue接口,它继承于Collection接口。

  双端队列:Deque接口,它继承于Queue接口,推荐用来实现栈操作。LinkedList实现了Deque接口。

使用双端队列实现栈操作:

    static void test03(){
        //创建一个栈
        Deque s = new LinkedList();
        //入栈
        s.push("111");
        s.push("222");
        s.push("333");
        while (!s.isEmpty()){
            //出栈
            System.out.println(s.pop());
        }
    }        

 


 

在遍历二叉树时,可以借助栈和队列来实现:Java中二叉树的遍历、查找

posted @ 2022-12-06 22:51  在博客做笔记的路人甲  阅读(34)  评论(0编辑  收藏  举报