首先要明白栈和队列的基础知识
队列是先进先出,就像条小河,栈是先进后出,以C++为例,栈和队列是STL(C++标准库),里面的两个数据结构,C++标准库是有多个版本,要知道我们使用的STL是哪个版本,才知道对应的栈和队列,下面介绍三个普通的STL版本:
HP STL其他版本的C++STL,一般是以HPSTL为蓝本出来的,HPC++STL的第一个实现版本,而且是开源
P.J.PlaugerSTL是由P.J.Plauger参照HP STL实现出来,被Visual C++编译所采用,不是开源的
SGI STL是由Silicon Graphics Computer Systems公司参照HP STL实现,被Linux的C++编译器GCC所采用,SGI STL是开源软件,源码可读性高
介绍栈和队列SGI STLl里面的数据结构,栈是提供push和pop等等接口,所有元素必须符合先进后出规则,栈是以底层容器完成工作,对外提供统一的接口,底层容器是可插拔,栈的内部结构,栈的底层实现可以是vector deque,list都可以,主要是靠数组和链表。我们常用的SGI STL,如果没有指定底层实现的话,默认是以depue为缺省的情况下栈的底层结构,
LeetCode 232.用栈来实先队列
题目链接:力扣
LeetCode 225.用队列实现栈
题目链接:力扣
今天要前几天没写博客要写完,最近有太多事情要做,打卡就迟点,我会补上,每天多学一点