栈,队列,优先队列详解

本文详细介绍了数据结构中的栈、队列和优先队列。栈是一种后进先出(LIFO)的数据结构,常用操作包括push、pop、top等,STL中通过vector、deque或list实现。队列则是先进先出(FIFO),通过deque容器实现,具有push、pop、front、back等操作。优先队列则根据优先级返回元素,本质是堆,可以使用less或greater仿函数定义优先级,通过上调和下调操作实现插入和删除。
摘要由CSDN通过智能技术生成

栈的概念,应用与实现

一. 栈的概念
首先栈是一个后进先出的数据结构,对于栈来说,只有一种插入和删除的方式就是通过头来实现,也就是从头压入,从头弹出。当通过STL调用栈的时候需要使用头文件 #include<stack>

二. 栈的应用
对于栈来说我们都比较熟悉的几个函数分别是
1.push()插入函数
2.pop()弹出函数
3.top()返回栈顶函数
4.size()返回栈中元素个数函数
5.emoty()判断栈是否为空函数
具体应用实现如下:
在这里插入图片描述
三. 栈的底层实现
在STL中栈和vector,string这类容器是不一样的,vector和string其实本质上就是数组和字符串,所以可以通过迭代器来实现,而栈本身不是一个容器,而是要使用其他容器来实现的,比如我们可以通过vector来实现栈,如下:
在这里插入图片描述
此处定义的泛型中的Container表示的是一个容器适配器,这里也给了他一个缺省值,所以这里我们Container就代表vector类型,所以可以看到我们定义了一个vector类型的变量_con。并且通过vector实现了栈,比如插入操作,直接使用vector中的插入函数,比如pop()操作,直接将vector中尾部元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值