408数据结构第三章

这篇具有很好参考价值的文章主要介绍了408数据结构第三章。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

特性后进先出
只允许在一端进行插入或删除操作的线性表
每接触一种新的数据结构类型,都应该分别从逻辑结构、存储结构和对数据的运算三方面入手

操作
initstack(&s)初始化一个空栈s
stackempty(s)判断一个栈是否为空
push(&s,x)进栈,未满成为新栈顶
pop(&s,&x)出栈,非空弹出栈顶元素
gettop(s,&x)读栈顶元素,用x返回栈顶元素
destroystack(&s)销毁栈

顺序存储结构
采用顺序存储的栈称为顺序栈
栈顶指针:S.top
初始设置S.top=-1
栈顶元素S.data[S.top]
栈空条件:S.top==-1
栈满条件:S.top==MaxSize-1
栈长:S.top+1

注意:
top指向的是栈顶元素
进栈操作为S.data[++S.top]=x
出栈操作为x=S.data[S.top–]

若栈顶指针初始化为S.top=0,top指向栈顶元素的下一位
入栈操作为S.data[S.top++]=x
出栈操作为x=S.data[–S.top]

共享栈
栈满 :top1-top0=1

栈的链式存储结构
称为链栈
便于多个栈共享存储空间和提高效率,不存在栈满上溢情况
链式存储便于结点的插入删除
入栈和出栈都在链表表头进行
对于带不带头结点的链栈实现会有不同

每个元素需要1个存储单元,每进栈一次top+1,出栈一次top-1
单循环链表通过尾指针可以很方便找到表头结点,没有尾结点找需要花费O(n)时间

队列

先进先出
只允许一端进入另一端删除
队头:允许删除的一端,队首
队尾:允许插入的一端

操作
initQueue(&Q)初始化队列
QueueEmpty(Q)判断列空
EnQueue(&Q,&x)入队,未满将x加入成为新的队尾
DeQueue(&Q,&x)出队,非空删除队头元素并用x返回
GetHead(Q,&x)读队头元素,非空将队头元素赋值给x

顺序存储结构
初始(队空):Q.front=Q.rear=0

循环队列
把存储队列元素的表从逻辑上视为一个环
队空:Q.front=Q.rear=0
队满:(Q.rear+1)%MaxSize==Q.front
队列中元素个数:(Q.rear-Q.front+MaxSize)%MaxSize

链式存储
队列的链式表示称为链队列
实际上是一个同时带有队头指针的队尾指针的单链表
链队列为空:Q.frontNull且Q.rearNull
不带头结点的链式队列在操作上比较麻烦
单链表表示的链式队列特别适合于数据元素变动比较大的情形,不存在队满产生溢出问题

双端队列
允许两端都可以进行入队和出队操作的队列
输出受限的双端队列:一端只插入另一端允许插入删除
输入受限的双端队列:一端只删除另一端允许插入删除

1.循环队列存储在数组A[0…n]中,入队操作为rear=(rear+1) mod maxsize,这里maxsize等于n+1
2.循环队列存储在数组A[21]中,front指向队头元素的前一个位置,rear指向队尾元素,这里maxsize等于21
队长为**(rear-front+maxsize)%maxsize**
3.求值:
删:front=(front+1)%个数
插:rear=(rear+1)%个数
4.链式存储方式队列的队列进行删除操作时需要头尾指针可能都要修改

栈和队列的应用

在括号匹配中的应用
在表达式求值中的应用
在递归中的应用:效率低,代码简单易于理解
将递归算法转换为非递归算法,通常借助来实现
迷宫求解用的栈

队列在层次遍历中的应用
队列在计算机系统中的应用
缓冲区、广度优先搜索图用的队列

数组

由n个相同数据类型的数据元素构成的有限序列

特殊矩阵的压缩存储

我懒……看大佬的哈哈哈哈

数组详细笔记文章来源地址https://www.toymoban.com/news/detail-489999.html

到了这里,关于408数据结构第三章的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • (浙大陈越版)数据结构 第三章 树(中) 二叉搜索树和平衡二叉树

    (浙大陈越版)数据结构 第三章 树(中) 二叉搜索树和平衡二叉树

    目录 4.1.1 二叉搜索树及查找 什么是二叉搜索树 定义 二叉搜索树特殊函数集: 查找操作:Find 算法思想 代码实现 补:查找最大和最小元素 4.1.2 二叉搜索树的插入 插入操作:Insert 算法思想 代码实现 例题 4.1.3 二叉搜索树的删除 删除操作:delete 算法思想 情况1:删除叶节点

    2024年02月08日
    浏览(9)
  • C++[第三章]--程序结构

    class里面的函数实现可以放到class外面实现,class里面声明即可。所以这部代码可以放到.h文件中如: 在cpp里面实现这些函数即可如: 多个cpp文件出现同名函数(非类里面的函数)会混淆。 定义:.h/.cpp文件中: 调用者源文件中: 直接使用: a::fun, a::fun2 using声明: using a::fun; // 以后

    2024年02月15日
    浏览(8)
  • c语言修炼第三章--结构体

    c语言修炼第三章--结构体

    目录 前言 3.1结构体的含义以及语法 3.1.1结构体含义 3.1.2结构体语法形式 3.1.2结构体变量的创建和初始化 3.2结构体成员的类型 3.3结构体的成员访问 3.3.1.操作符 3.3.2-操作符 3.4结构体传参 小伙伴们大家好!欢迎继续和菜菜酱学习c语言呐!之前菜菜酱有事所以耽误啦,废话不多

    2024年02月16日
    浏览(10)
  • 第三章-Ethernet/IP帧结构

    第三章-Ethernet/IP帧结构

    所有封装报文应由一个 24 字节的固定长度报文头和一个可选的数据部分组成。封装报 文的总长度(包括报文头)应限制在 65535 字节以内。其结构如下。 Command Length 表示报文数据的大小(以字节为单位),对于不含数据的报文,则为0。 报文的总长度=Length的数值+24字节。 S

    2024年02月01日
    浏览(10)
  • 第三章-Java的基本程序设计结构

    第三章-Java的基本程序设计结构

      3.1一个简单的Java语言程序  这是程序虽然很简单,但是所有的Java程序都具有这种结构,因此还是值得花一些时间来研究的。首先,Java区分大小写。如果出现了大小写拼写错误(例如:将main拼写成Main),程序将无法运行。 下面逐行的查看这段源代码。pubilc称为访问修

    2024年02月03日
    浏览(9)
  • Python基础练习题--第三章 控制结构

    Python基础练习题--第三章 控制结构

    目录 1025:【例3.1】购买笔记本 1026:【例3.2】判断奇偶 1027:【例3.3】区间测速 1028:【例3.4】飞船速度 1029:练3.1最大优惠价 1030:练3.2判断闰年 1031:练3.3最适宜运动心率2 1032:【例3.5】计程票 1033:【例3.6】BMI健康信息 1034:练3.4  区间测速2 1035:练3.5  购买笔记本2 【题

    2024年02月07日
    浏览(14)
  • 大数据之路——数据同步(第三章)

    大数据之路——数据同步(第三章)

       如第一章所述,我们将数据采集分为日志采集和数据库数据同步两部分。数据同步技术更通用的含义是不同系统间的数据流转,有多种不同的应用场景。主数据库与备份数据库之间的数据备份,以及主系统与子系统之间的数据更新,属于同类型不同集群数据库之间的数据

    2024年01月25日
    浏览(10)
  • 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面

    第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面

    通过 HL7 架构页面,可以导入和查看 HL7 版本 2 架构规范。要显示此页面,请从主页中选择互操作性 互操作 HL7 v2.x HL7 v2.x 架构结构。有关使用此页面的一般信息,请参阅在产品中使用虚拟文档中的“使用架构结构页面”。 HL7 模式页面提供了一个附加选项卡:消息类型。此选

    2024年02月15日
    浏览(10)
  • 第三章作业:关系数据库

    第三章作业:关系数据库

    同一个关系模型的任意两个元组值(C ) A 必须全同 B 可全同 C 不能全同 D 以上都不是 设W=R∞S,且W,R,S的元组个数分别为p,m,n,那么三者之间满足 D。 A. p(m+n) B. p≤(m+n) C. p(m×n) D. p≤(m×n) σF1(σF2(E))与 A 等价。 A. σF1∧F2(E) B. σF1(E) C. σF2(E) D. σF1∨F2(E) 设关系R和S的属性个数分别

    2023年04月25日
    浏览(21)
  • 计网第三章(数据链路层)(三)

    计网第三章(数据链路层)(三)

    目录 一、点对点协议PPP 二、广播信道 1.媒体接入控制 (1)静态划分信道: (2)动态接入控制: 受控接入: 随机接入: CSMA/CD协议: CSMA/CA协议: 在第一篇里有提到数据链路层的信道分为两种:点对点信道和广播信道。 PPP协议就属于点对点信道上的协议。 如果对前面数据

    2024年02月12日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包