数据结构(C++版)第4章 广义线性表.pptVIP

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构(C版)第4章广义线性表

三维数组 各维元素个数为 m1, m2, m3 下标为 i1, i2, i3的数组元素的存储地址: 按页/行/列存放 说明:各维的下标从0开始 n 维数组 各维元素个数为 m1, m2, m3, …, mn 下标为 i1, i2, i3, …, in 的数组元素的存储地址: A =( ) B =(e) C =(a, (b,c,d)) D =(A, B, C) E =(a, E) F =(( )) A =( ) B =(e) C =(a, (b,c,d)) D =(A, B, C) E =(a, E) F =(( )) A =( ) B =(e) C =(a, (b,c,d)) A =( ) B =(e) C =(a, (b,c,d)) D =(A, B, C) E =(a, E) F =(( )) 4.4 应用举例 数组的应用举例-魔方阵 问题:在一个n*n的矩阵中填入n*n(n 为奇数)个数据,使得每一行、每一列每条对角线的累加和都相等。 第一个位置在第一行正中; 新位置应当处于最近一个插入位置左上方, 但如左上方位置已超出方阵上边界,则新位置取应选列的最下一个位置, 如超出左边界则新位置取应选行的最右一个位置; 如果按上述方法找到的位置已填入数据,则在同列下一行填入数字 void Square(int a[ ][ ], int n) { p=0; q=(n-1)/2; a[0][q]=1; //在第0行的中间位置填1 for (i=2; i=n*n, i++) { p=(p-1+n) % n; //求i所在行号 q=(q-1+n) % n; //求i所在列号 if (a[p][q]0) p=(p+1) % n; //如果位置(p, q)已经有数,填入同一列下一行 a[p][q]=i; } } P137 (7) Void Andian(int a[][], int m, int n) { for(i=0;in;i++) { d=a[i][0];k=0; for (j=1;jm;j++) if (a[i][j])d{ d=a[i][j]; k=j; }// a[i][j]为第i行的最小值 For (j=0;jn;j++) if (a[j][k]d) break; if (j==n) cout“输出鞍点”ika[i][k]; } } 长度:广义表LS中的直接元素的个数; 深度:广义表LS中括号的最大嵌套层数。 表头:广义表LS非空时,称第一个元素为LS的表头; 表尾:广义表LS中除表头外其余元素组成的广义表。 广义线性表——广义表 广义表( )和广义表(( ))不同? 广义表的基本概念 广义线性表——广义表 广义表的示例 长度?深度?表头?表尾? 广义线性表——广义表 广义表的图形表示 A B e C a b c d D 对广义表的直接元素a,用一个结点表示,若a为单元素,用矩形结点表示,若a为广义表,用圆形表示,结点之间的边表示元素之间的“包含/属于”关系。 广义线性表——广义表 广义表可以采用顺序存储结构吗? 由于广义表中的数据元素的类型不统一,因此难以采用顺序存储结构来存储。 若广义表不空,则可分解为表头和表尾;反之,一对确定的表头和表尾可唯一地确定一个广义表。 采用头尾表示法存储广义表 如何采用链接存储结构存储广义表? 广义表的存储结构——头尾表示法 广义线性表——广义表 广义表中的数据元素既可以是广义表也可以是单元素 头尾表示法中的结点结构? 表结点——存储广义表;元素结点——存储单元素 tag=1 hp tp tag=0 data 表结点 元素结点 tag:区分表结点和元素结点的标志; hp:指向表头结点的指针; tp:指向表尾结点的指针; data:数据域,存放单元素。 广义表的存储结构——头尾表示法 广义线性表——广义表 结点结构 enum Elemtag {Atom, List}; template class T struct GLNode { Elemtag tag; union { T data; struct { GLNode *hp, *tp; } ptr;

文档评论(0)

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

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

1亿VIP精品文档

相关文档