软件技术基础 栈结构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
栈结构 用数组实现栈 用数组实现栈 用数组实现栈 用数组实现栈 用数组实现栈 (6)栈的应用 用链表实现栈 2.2用链表实现栈 用链表实现栈 用链表实现栈 队列 3、队列 类似于排队机制的结构 队列是特殊的线性表, 节点的插入仅限于在表尾进行, 节点的删除仅限于在表头进行 队列 特点: (1)对队列的操作在表的两端进行 (2)仅在队尾加入节点——入队enqueue (3)仅在队首移出节点——出队dequeue (4)遵循“先进先出”的原则——FIFO 用数组实现队列 3.1用数组实现队列 (1)定义 用数组实现队列 (2)入队与出队 用循环数组实现队列 3.2用循环数组实现队列 用循环数组实现队列 用循环数组实现队列 队空条件 队满条件 用循环数组实现队列 队空条件 队满条件 用循环数组实现队列 入队算法 用循环数组实现队列 出队算法--课堂练习 用循环数组实现队列 思考:在循环队列的第K个元素后插入一个新元素--插队 如何确定aK的位置? 如何搬移节点,以腾出空位放入新元素? 用链表实现队列 3.3用链表实现队列 用链表实现队列 (二) 入队 新链点插入到队尾 注意:队列为空时,rear和front都要指向新元素 (三) 出队 删除队首链点 注意:当队列被删空时,rear指针要置空 串结构 4、串 串即字符串: 由零到多个字符组成的连续有限序列 串是一种线性结构 串符合线性表的特性(特别是顺序表) 字符串的特殊性在于对串有一些特殊的操作 串结构 4.1访问操作 基本访问: 根据字符在串中位置获得字符; 根据字符获得它在串中位置 遍历:逐个访问串中字符 部分访问(求子串): 获得串中指定位置开始的多个元素 获得子串在串中的位置 串结构 4.2插入 基本插入:在串中指定位置插入一个字符 子串插入:在串中指定位置插入多个字符 4.3删除 基本删除:在串中指定位置删除字符 子串删除:在串中指定位置删除多个字符 4.4其它操作 串连接:一个串连在另一个串的后面,形成新串 求串长、串比较、子串替换 ...... 串结构 4.5串的实现 (1)字符数组(用数组实现串) 紧缩格式: 数组每一个单元类型都是字符型,可放入一个字节的字符 非紧缩格式: 数组的单元不是字符型——2~4个字节 串结构 (2)字符链表(用链表实现串) 链表的每个链点的元素域放入一个字符 操作方便,但空间开销大 链点元素域占一个字节 链点指针域占四个字节 开销为4/5 二维数组(矩阵) 5、二维数组 行关系,列关系均是线性关系 5.1二维数组的顺序存放 (一)行优先存放 计算aij的存放位置: 二维数组 (二)列优先存放 二维数组 5.2矩阵的链接存储 十字链表法 二维数组 5.3矩阵的压缩存储 (1)对称矩阵,三角矩阵的压缩 对称矩阵:a[ i , j ] = a[ j , i ] 三角矩阵:上三角为0,或下三角为0 只存储上或下三角内的元素,节约近一半的存储空间 二维数组 (1)对称矩阵,三角矩阵的压缩 二维数组 (2)稀疏矩阵 矩阵中的非零元素很少,分布没有规律 利用三元存储法 先形成三元矩阵 再按照行优先顺序方式存储。 二维数组 稀疏矩阵压缩存储例 二维数组 稀疏矩阵三元组定义 1)定义三元组元素 2)定义三元组 上机习题:稀疏矩阵求转置 小结 作业 教材71页12、13、14 a11 a12 a1i a1n a21 a31 am1 a22 a32 am2 ...... ...... data 行指针 列指针 a11 a21a22a31a32a33a41… aii... an1 an2 ... ann ... 1 3 5 6 3 4 2 7 4 2 1 5 5 3 6 0 i = j 时,元素位于下三角 Loc(aij) = Loc(a11) + ( i ( i - 1) / 2 + ( j - 1))*S i j 时,元素位于上三角 Loc(aij) = Loc(a11) + ( j ( j - 1) / 2 + ( i - 1))*S a11 a21a22a31a32a33a41… aii... an1 an2 ... ann ... 1 3 5 6 3 4 2 7 4 2 1 5 5 3 6 0 1+2+3+…+(i-1) aij 行值,列值,元素值 AMN = 行数 列数 非零元素个数 行值 列值 元素值 ... 第一行 第一个非零元素 ... 行值 列值 元素值 第二个非零元素 1 0 0 6 3 0 0 0 0 0 0 0 1 0 0 X48 = 0 0 0 0 0 0 0 0 0 4 1 2 4 3 1 1 2 6 1 3 4 A63 = 5 1 7 3

文档评论(0)

peace0308 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档