数据结构:(浅识)栈和队列

目录

一    栈的概念及结构

二    栈的实现思路

队列

一    队列的概念及结构

二    队列的实现思路

简单了解栈和队列的题目


一    栈的概念及结构

:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。

压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。

出栈:栈的删除操作叫做出栈。出数据也在栈顶。

(方便理解,下面贴个图)

二    栈的实现思路

栈的实现可以用数组或者链表完成,而相对于链表,数组更适合用来实现栈。

由于是在栈顶实现,可供选择的方式有两种:

一种是将栈顶当作数组的尾部,直接在数组尾部进行增删即可实现,

另一种则是将栈顶看作链表的头部,通过对链表的头插头删来实现栈;

由于顺序表在尾部插入数据的代价比链表于头部插入的代价小,故而选择顺序表完成栈的实现。

队列

一    队列的概念及结构

队列是一种特殊的线性表,与栈正好相反,它是在一端插入,另一端删除。进行数据插入的一端 称为队尾, 进行删除操作的一端 称为队头。队列中的数据元素遵守后进后出LILO(Last In Last Out)的原则。

(同上,贴出图片方便理解)

二    队列的实现思路

与栈同入同出不同,队列是一端进一端出的结构。所以要想实现队列,数组则没有链表来的高效,

所以通常使用链表来实现队列。

当我们使用单链表来实现队列时,由于需要头删尾插,所以需要额外定义一个头指针head,一个尾指针tail 和一个记录链表大小的整形size

头指针用来帮助我们找到队头进行出队,尾指针用来帮助我们实现入队,size则帮助我们判断队列是否为空,防止我们为空时进行出队导致出错。

简单了解栈和队列的题目

好记性不如烂笔头,而光看知识点也不如上手敲几段代码理解的快。

下面是一些可以帮助理解的关于栈和队列的题目,感兴趣可以自行尝试。

1. 括号匹配问题。力扣

2. 用队列实现栈。力扣

3. 用栈实现队列。力扣

4. 设计循环队列。力扣

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值