数据结构之栈和队列

栈的定义:

我们要记住这8个字,先进后出,后进先出

我们对于栈的操作只有两个,进栈和出栈

栈的顺序结构初始化:(和顺序表差不多)

代码实现:

栈的顺序结构进栈:

代码实现:

栈的顺序结构出栈:

代码实现:

这里解释一下,让下标减一,下次进行进栈的时候就直接覆盖了,和顺序表的原理差不多

获取栈顶元素:

代码实现:

最后看一下实现结果:

栈的内存分配进行初始化

栈的链式结构初始化:

代码实现:

栈的链式结构进栈:

代码实现:

栈的链式结构出栈:

代码实现:

栈的链式结构获取栈顶元素:

代码实现:

最后看一下实现结果

下面到了队列

队列的定义正好与栈相反

我们要记住这8个字,先进先出,后进后出

队列的顺序结构初始化:

代码实现:

队列的顺序结构判断队列是否为空:

代码实现:

队列的顺序结构判断队列的元素满没满:

代码实现:

队列的顺序结构入队:

代码实现:

队列的顺序结构出队:

代码实现:

队列的顺序结构获取尾数据:

代码实现:

最后看一下实现结果:

循环队列:

队列的循环结构初始化:

代码实现:

队列的循环结构入队:

代码实现:

队列的循环结构出队:

代码实现:

最后看一下实现结果:

循环队列这里有一个BUG,他永远满不了

因为real永远指向元素的下一个位置,当他指向0的时候,在判断满没满时,他的结果是满的 ,实际上没有满,我们看一下下面这张图片

队列链式结构初始化:

代码实现:

队列链式结构进队:

代码实现:

队列链式结构出队:

代码实现:

队列链式结构获取头元素:

代码实现:

最后看一下实现结果:

关于队列的基础知识点就先到这里吧,我们寒假在见

相关推荐
谦宸、墨白1 小时前
从零开始学C++:二叉树进阶
开发语言·数据结构·c++
闲人不梦卿2 小时前
数组和矩阵以及广义表
数据结构
苦藤新鸡3 小时前
41.有序数组(二叉搜索树)转平衡二叉树
数据结构·力扣
毅炼5 小时前
hot100打卡——day14
java·数据结构·算法·leetcode·ai·深度优先·哈希算法
DLGXY5 小时前
数据结构——双向循环链表的建立、添加、遍历(十三)
数据结构·链表
C雨后彩虹5 小时前
优雅子数组
java·数据结构·算法·华为·面试
漫随流水5 小时前
leetcode回溯算法(46.全排列)
数据结构·算法·leetcode·回溯算法
睡一觉就好了。6 小时前
直接选择排序
数据结构·算法·排序算法
芬加达6 小时前
leetcode221 最大正方形
java·数据结构·算法
知无不研6 小时前
实现一个整形栈
c语言·数据结构·c++·算法