首页 > 其他分享 >数据结构基础第3讲

数据结构基础第3讲

时间:2024-04-23 22:57:11浏览次数:20  
标签:bottom 基础 top 元素 栈顶 数据结构 data 指针

数据结构基础第3讲 栈及其应用

内容

img

考点一:栈的概念

1.顺序栈的定义:

img

  1. 出栈顺序情况计算

    给定n个元素,出栈顺序的情形满足卡特兰数,计算公式:

    \[\frac{C_{2n}^{n}}{n+1} \]

    例题:

    确定第一个出栈的谁。有两种可能:

    找带头大哥。

    img
    img

  2. 栈的顺序存储结构

    顺序栈操作

    img

    顺序栈4要素

    • 栈空条件: top = -1

    • 栈满条件: top = StackSzie - 1

    • 进栈操作:top++;将e放在top处

    • 退栈操作: 从top处取出元素e; top--;

      img

  3. 栈的临界条件

    1. 初始化时,top = bottom = -1

      img

    • 入栈:

      s -> top++; //栈顶指针+1
      s -> data[s -> top] = a;  // 元素a放在栈顶指针处
      

      top始终指向栈顶元素

      bottom指向-1

    • 出栈

      x = s -> data[s -> top];
      s -> top--; // 栈顶指针-1
      

      栈中元素个数top+1个

      当top+1 >= n时栈满

    1. (考试默认情况)初始化时,top = bottom = 0

      img

    • 进栈

      s -> data[s -> top] = a;  // 元素a放在栈顶指针处
      s -> top++; // 栈顶指针+1
      

      top指向栈顶元素的下一个空位置

      bottom指向0

    • 出栈

      s -> data[s -> top];  // 栈顶指针-1
      x = s -> data[s -> top]
      

      栈中元素个数top个

      top >= n时栈满

    1. 初始化时, top = bottom = n

      img

    • 入栈

      s -> top--;  // 栈顶指针-1
      s -> data[s -> top] = a;  // 元素a放在栈顶指针处
      

      top始终指向栈顶元素

      bottom始终指向n

    • 出栈

      x = s -> data[s -> top];
      s -> top++;  // 栈顶指针+1
      

      元素个数n-top个

      当n - top >= n
      时栈满

    1. 初始化时, top = bottom = n - 1

      img

    • 入栈

      s -> data[s -> top] = a;   // 元素a放在栈顶指针处
      s -> top--;  //栈顶指针-1
      

      top始终指向栈顶元素的下一个空位置

      bottom始终指向n - 1

    • 出栈

       s -> top++;  // 栈顶指针+1
      x = s -> data[s -> top];
      
      

      元素个数n-top-1个

      当n - top-1 >= n
      时栈满

2.对顶栈(共享栈)

两个栈底位于两端,栈顶往中间聚拢

img

共享栈的4要素:

img

考点三:栈的链式结构

示意图:

img

链栈4要素:

img

标签:bottom,基础,top,元素,栈顶,数据结构,data,指针
From: https://www.cnblogs.com/JUANFENHUI/p/18151448

相关文章

  • 蝴蝶书 第1章 基础科普
    ChatGPT基础科普——知其一点所以然词向量词向量(词嵌入):它本质上是找到一种编码方式,实现从自然语言中到数学空间的映射。(自然语言-映射->向量)我们为什么需要词向量呢?计算机不能理解自然语言,比如:“我爱你”,要让计算机理解需要:数字“1”代表“我”,数字“2”代表“爱”,数字“3......
  • 数据结构基础第4讲
    数据结构基础第4讲队列内容考点一:队列概念代码不考1.队列的定义考点二:顺序队列的定义考点三顺序队列的性质与操作4要素:考点四:循环队列的定义由于顺序队列会存在假溢出问题,引入循环队列。假溢出:描述:考点五:循环队列的操作判断空满:性质:考频75%元素个......
  • 数据结构基础第6讲
    数据结构基础第6讲图及其应用1-2个选择考点一:图的基本概念1.图基本概念连通图:极大连通子图-连通分量:极小连通子图-生成树:强连通顶点给定n个顶点,要保证图在任何情况下连通需要最小边数:1.生成树,边(n-1)2.完全无向图\(\frac{(n-1)\timesn}{2}\)3.\(\left......
  • 数据结构基础第5讲
    数据结构基础第5讲树和二叉树本章内容:考点一:基本术语1.数的引入2.树的定义层次,分支,一对多。互不相交的含义:3.结点的分类结点的度:4.结点的关系树的深度:树中结点最大高度称为树的高度(或树的深度)行兄弟结点:在同一层但不是兄弟的结点路径长度:等于路径......
  • 数据结构的练习day2(未完待续)
    数据结构线性结构之单向循环链表的基本操作/***********************************************************************************************************设计单向循环链表的接口****Copyright(c)[email protected]......
  • 数据结构:单循环链表的创建插入与删除
    数据结构:单循环链表的创建·插入·删除/***@filename: 单循环链表的创建·插入·删除*@brief实现单循环链表的创建删除插入的功能*@[email protected]*@date2024/04/23*@version1.0:版本*@notenoone*CopyRight(c)2023-2024liuliu@......
  • 【基础】Flink -- State 状态总结
    【基础】Flink--StateFlink--StateFlink中的状态有状态算子状态的分类按键分区状态KeyedState支持的结构类型值状态ValueState列表状态ListState映射状态MapState规约状态ReducingState聚合状态AggregatingState状态的生存时间算子状态OperatorState算子......
  • python 基础习题2--字符串切片技术
    1. 有如下字符串str='123456789'字符串切片技术,例如,返回输出从第三个开始到第六个的字符(不包含)即得到:345利用字符串切片技术,代码可以这么写:print(str[2:5])如果想返回如下八行结果,利用字符串切片技术,如何编写代码?12345678912345678134534567892412345678912345678......
  • python 基础习题1--基础语法
    1.书写代码,输出结果为: 答案:print("Hello,Python!")ViewCode 2. ......
  • PROFINET IO应用层数据结构
    从远古时代讲起在300/400的年代,SIMATIC模块要提供一些特定的信息的方法是将特定信息保存到SSL里,通过查询的方法获得。SSL中文名叫做系统状态列表,帮助里面有些时候有写成SZL,不过都是一样的东西。在Step7中使用SFC51(RDSYSST),SFB54(RALRM)来获取SSL和报告系统错误,具体的record......