《算法笔记》读书记录DAY_24

本文介绍了栈和队列两种数据结构及其应用。栈是一种先进后出的数据结构,常用于表达式求解、递归等问题;队列则是一种先进先出的数据结构,适用于任务调度、打印任务等场景。文章详细阐述了栈和队列的实现原理,包括顺序栈和队列的操作,如清空、获取元素个数、判断空、入栈/入队、出栈/出队等,并提到C++ STL中stack和queue容器的使用。
摘要由CSDN通过智能技术生成

CHAPTER_7  提高篇(1)——数据结构(1)

 7.1.1栈的应用

栈是一种先进后出的数据结构。怎么理解先进后出呢,我们将栈理解为堆积木。我们放积木,都是从最底下一层一层开始堆,而拿的时候从最上层开始拿,这样越早堆的积木拿的也就越晚,这样实际上就是先进后出了。

栈的结构可以参考上图。我们看到,有一个栈顶指针TOP始终指着最上方的位置。栈顶指针是始  终指向栈的最上方元素的一个标记。假如我们的栈使用数组来实现,TOP就是一个int型的变量,它记录着数组最后一个元素(也就是栈顶元素)的下标位置。而当栈空时,TOP的值等于-1,标志着没有元素。

我们用数组实现的栈是顺序栈,实现的方法也很简单:定义一个足够长的数组用来存放元素,再定义栈顶指针TOP,并初始化TOP=-1表示栈空。我们接下来来看顺序栈的基本操作,包括:清空栈、获取栈的大小、判断栈是否空、元素进栈、元素出栈、获取栈顶元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值