网站大量收购独家精品文档,联系QQ:2885784924

数据结构与算法广义表报告.pptx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法广义表报告.pptx

广义表;广义表;一、什么是广义表?;④ D=(A, B, C), 广义表D的长度为3, 3 个元素都是广义表。; D = (E, F) E = (a, (b, c)) F = (d, (e)) ;从以上例子可以看出: ① 广义表可以共享子表, 且允许递归。 ② 广义表的元素之间除了存在次序关系外, 还存在层次关系。 ③ 任何一个非空广义表,其表头可能是原子, 也可能是广义表, 而其表尾必定为广义表 ;广义表的深度: 广义表中元素的最大层次为表的深度。元素的层次就是包含该元素的括号对的数目。 例如: F=(a, b, (c, (d)) ); 另外,广义表的元素之间除了存在次序关系外,还存在层次关系,如图表示了这种关系。在图中以圆圈表示广义表,方块表示单元素。; 三、广义表的运算: 和线性表类似,可以对广义表的操作有查询、插入和删除等。但广义表还有两个特殊的操作:取广义表的表头HEAD(LS)和取广义表的表尾TAIL(LS)。 根据前面对表头和表尾的定义可知:任何一个非空广义表其表头可以是单元素,也可以是子表,而其表尾必定为一个广义表(子表)。例如,广义表为前面所定义的A到E表,HEAD和TAIL运算有: HEAD(B)=e, TAIL(B)=(), HEAD(C)=a, TAIL(C)=((b, c, d)), HEAD(D)=A, TAIL(D)=(B,C), 另外运算也可以嵌套,如: HEAD(TAIL(c))=(b,c,d),TAIL(TAIL(D))=(C)。;例如: 若 C=(a, (b, c, d)) D=(A, B, C) 则:Head(D)=A Tail(D)=(B, C) Head(C)=a Tail(C)=((b, c, d));注意: 广义表 ( ) 和广义表(( ))不同。 ( ) 为空表,长度 n=0 ,不能分解成表头和表尾。 (( )) 不是空表,其长度 n = 1 ,可以分解得到表头是空表( ) , 表尾是空表( ) .;四、广义表的存储结构 由于广义表(a1, a2, …, an)中的数据元素可以具有不同的结构(或是原子, 或是列表), 因此难以用顺序存储结构表示, 通常采用链式存储结构。; 因为:若广义表不空, 则可分解成表头和表尾; 所以: 一对确定的表头和表尾可唯一确定列表。 ;原子结点;typedef struct GLNode { ElemTag tag ; union { AtomType atom ; struct { struct GLNode *hp, *tp ; } ptr ; }; } *Glist ;; ① A=( ) ② B=(e) ③ C=(a, (b, c, d)) ④ D=(A, B, C) ⑤ E=(a, E);五、广义表的基本操作 对广义表基本操作有: (1)建表。 (2)撤销表。 (3)复制(赋值)表。 (4)插入元素作为第i个元素。 (5)删除第i个元素。 (6)求表深度 。 等。 下面讨论求表深度和建表算法。 广义表的深度定义为表中括号的重数,是广义表的一种度量。广义表中数据元素的最大层次数为表的深度,例如,有一个广义表LS=(a,(b,c,(d,e))),数据元素a在第一层,b、c在第二层,而数据元素d在第三层,所以广义表的深度为3。算法如下。; 1. 求广义表深度算法 int GList_Depth(GLNode *head) /* head是广义表的首指针 */ { GLNode *p;int max,depth1; p=head, max=0; while(p!=NULL) { if(p-tag==0) depth1=0; else depth1= GList_Depth(pcontent.child); if(depth1max) max=depth1; p=p-next; } return(max+1); } ;2. 建立广义

文档评论(0)

2837587390 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档