数据结构和算法以及leetcode002 整理

本文详细介绍了栈和队列这两种基本的数据结构。栈遵循先进后出的原则,常用于括号匹配、后缀表达式计算等;队列则遵循先进先出原则,适用于任务调度等场景。文中还列举了C++标准库中栈和队列的主要成员函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二章:栈和队列
今天要复习的内容是栈和队列,栈是一种常见的数据结构,栈的基本特征是先进后出,相当于大家一起排队走进死胡同。栈的实现可以是数组的形式,也可以是链表的形式,但是作为主要的数据结构C++中已经封装成了stack(因此作为主要的数据结构没有必要再去手动实现了),这里对C++中栈的主要成员函数进行总结;
stack<int> s{...};//通过列表初始化栈
s.empty();//判断栈是否为空
s.push();//元素入栈
s.pop();//元素出栈
s.top();//返回栈顶元素
s.size();//判断栈中的元素数目
栈的主要应用,括号匹配,后缀表达式的计算,模拟递归(经典的算法如二叉树的前序,中序,后续遍历等)在后续的leetcode中会有具体的例子详细介绍;

队列是另外一种常见的线性数据结构,队列不同于栈,栈是先进后出,而队列是先进先出,队列的实现方式也可以是数组,也可以链表实现,队列在队尾入队,在队头出队,C++用数组实现了一个队列即queue,这里同样对其成员方法进行总结
queue<int> d;
d.empty();//判断队列是否是空
d.push();//元素从队尾入队
d.pop();//元素从对头出队
d.front();//返回队首元素
d.back();//返回队尾元素
d.size();//返回队列中元素的数量
队列应用在leetcode中也有不少题目,再后面一一介绍;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值