数据结构~07.栈和队列的基本概念

本文是上一篇文章的后续,详情点击该链接~

栈的定义:

栈是一种只能在一端进行插入或删除的线性表。其中,允许插入或删除的一端为栈顶(TOP)。栈顶由一个称为栈顶指针的位置指示器来指示。它是动态变化的。表的另一端为栈底,栈底固定不变。栈的插入和删除操作一般称为入栈和出栈。由栈的定义可以看出,栈的主要特点就是先进后出。

栈的存储结构:

栈可以用顺序表和链表来存储。也称顺序栈和链栈。在栈的定义中已经说明,栈就好像是一种稍加限制之后的线性表。

#define MAXSIZE 100
//顺序栈的定义
typedef struct {int data[MAXSIZE];      //存放栈中元素,MAXSIZE是已经定义的常量int top;                //栈顶指针
}SqStack;                   //顺序栈结点定义//链栈结点定义
typedef struct LNode {int data;                 //数据域struct LNode *next;            //指针域
}LNode;                         //链栈结点的定义
链栈

队列的定义

队列简称队,它也是一种操作受限的线性表。其限制为仅允许在表的一端插入,在表的另一端删除。可进行插入的一端为队尾,可进行删除的一端为队头。向队列插入新元素称为进队,从队列中删除元素称为出队。队列的特点概括起来就是:先进先出。

队列的存储结构

队列可以用顺序表和链表来存储队列。称为顺序队和链队两种。

#define MAXSIZE 100
//顺序队的定义
typedef struct {int data[MAXSIZE];int front;                //队首指针int rear;             //队尾指针
}SqQueue;                   //顺序队结点类型定义//=====================================================//链队定义
//队结点类型
typedef struct QNode {int data;             //数据域struct QNode* next;        //指针域
}QNode;                     //队结点类型定义
//链队类型定义
typedef struct {QNode* front;           //队头指针QNode* rear;          //队尾指针
}LiQueue;                   //链队类型定义
链队

数据结构~07.栈和队列的基本概念相关推荐

  1. 【数据结构】栈、队列、堆的python实现

    [数据结构]栈.队列.堆的python实现 一.栈的python实现 1.1.栈的列表实现方法 1.2.用双向队列模拟栈 二.队列的python实现 2.1.队列的列表实现 2.2.使用deque实现 ...

  2. C语言【数据结构】栈和队列【OJ题(C++)、选择题】

    目录 一.OJ题 1.225. 用队列实现栈 2.232. 用栈实现队列 3.622. 设计循环队列 4.20. 有效的括号 二.选择题 1.下列关于栈的叙述正确的是(B) 2.一个栈的入栈序列为AB ...

  3. 10.数据结构:栈和队列

    大家好,我王有志又回来啦.关注王有志,回复DSA获取数据结构和算法学习资源. 最近被全链路优化搞得焦头烂额,等抽出时间来和大家分享下我司正在做的"全面提速工程". 今天我们来学习线 ...

  4. 【数据结构】栈与队列区分push pop offer poll containsKey put等

    目录 前言 正文 队列 栈 map集合 前言 算法中经常会用到栈和队列等数据结构 但是经常弄混他们的进与取的代码算法 此文主要是做一个区分度 用法以及注意事项详情可看我之前的文章 [数据结构]栈和队列 ...

  5. 算法与数据结构(part5)--栈与队列

    学习笔记,仅供参考,有错必纠 文章目录 算法与数据结构–基于python 栈 栈是什么 栈(ADT)的操作 栈的实现 队列 队列是什么 队列的操作 队列的实现 双端队列 双端队列是什么 双端队列的操作 ...

  6. 数据结构03栈和队列

    第三章栈和队列 STL 栈:stack http://blog.csdn.net/weixin_37289816/article/details/54773495 队列: queue  http:// ...

  7. 数据结构习题——栈和队列(二)

    第3章  栈和队列    一.填空题 1.  线性表.栈和队列都是 线性 结构,可以在线性表的 任何 位置插入和删除元素:对于栈只能在 栈顶 插入和删除元素:对于队列只能在 队尾 插入和 队头 删除元 ...

  8. 数据结构之—栈和队列

    目录 引言 一.栈(stack) 1.栈的应用 2.栈的实现 二.队列 1.基础队列的实现 2.循环队列 ​编辑 1)概念 2)如何判断环形队列为空⭐ 总结:环形队列是否已满条件:(tail+1)%d ...

  9. 【霍洛维兹数据结构】栈和队列 | 动态循环队列 | 迷宫问题 | 表达式 | 多重栈多重队列

    前言: 最近在读霍罗维兹的<数据结构基础>(Fundamentals of Data Structures in C),本篇博客为阅读笔记和知识总结. 目录 Ⅰ. 栈(STACKS) 0x ...

最新文章

  1. SAP Lumira 初探
  2. 将新主要功能部署到生产时要考虑的5件事情
  3. 渭南java_渭南java语言入门教程视频
  4. BZOJ 1460 Pku2114 Boatherds
  5. Java跟踪对象,使用OpenCV实时隔离和跟踪多个对象?
  6. protel中PCB板大小的自定义方法
  7. 团部培训笔记-设计模式-《2013-11-27 代理模式》
  8. 百度开源的 71 个项目,你用过几个 ?
  9. c语言开发unity,[Unity3D]U3D开发项目总结
  10. html文字logo
  11. 3ds Max中的复制方式
  12. java scp 文件夹_如何用 scp命令创建文件夹
  13. 免费软件不比付费软件逊色半分之94款免费软件
  14. 智能暖风机——8.云端控制
  15. 隐写术之实验吧--小苹果
  16. sed删除空行、换行符的方法 (包括空格、特殊字符、tab等组成的空行) vim删除^M
  17. html实现滑块拖动验证
  18. python torch exp_Python torch.diag方法代码示例
  19. 利用MAT进行内存泄漏分析
  20. 大致总结一下 安卓各大版本的差异(安卓4以上版本)

热门文章

  1. 泛型的基础 装箱拆箱
  2. 百度地图POI数据获取
  3. 视频的上传及购买播放
  4. 纪中GMOJ语言模块题目1009
  5. python3.7,显卡CUDA版本11.1,安装pytorch-CUDA
  6. Android Studio打包apk详细教程
  7. cdq分治和整体二分
  8. (学习笔记)PCL点云库的基本使用
  9. 分布式限流的解决方案
  10. docker更换镜像源