- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构Ch.数组和广义表
* * * * * * * * * * * * * * * * * §5.3 广义表(Lists) 图示 E=NIL * §5.3 广义表(Lists) 特点 除空表的表头指针为空外,头指针均指向表结点。 任一表结点的hp均指向表头部(原子结点或表结点) 任一表结点的tp均指向表尾部(当表尾部为空表时,tp=NIL,否则必指向表结点) 易分清表中原子和子表所在层次。 如x、L在第一层,a、b在第二层。 最高层的表结点数即为广义表的长度。 浪费空间,易求表长和表深度。 * §5.3 广义表(Lists) (2) 单链表示法 模仿线性表的单链表结构,当所有元素为原子时,等价于单链表。 结点结构: 图示:E=NIL C=(A, B)=((x, (a, b)), ((x, (a, b)), y)) =(A(x, L(a, b)), B(A(x, L(a, b)), y)) * §5.3 广义表(Lists) 存储结构说明 typedef struct GLNode{ int atom; //亦可定义为枚举类型,标志域 struct GLNode *slink; //指向同层后继 union { struct GLNode *slink; //指向子表的第一个结点 DataType data; //原子结点数据域 }optval; //候选值 } *GList; * §5.3 广义表(Lists) 缺点: 若要在某一表中开始处插入或删除一个结点,则要找出所有指向该结点的指针,逐一加以修改。 例如,上图中,删除A表中的x,修改A的头指针外,须修改来自于B、C表的指针,引用来源点不易知道。 删除一个表可能导致错误。 例如,删除A表时,A的所有结点释放后,会引起B、C表的错误。 * §5.3 广义表(Lists) 改进 引入表头结点,使子表内部的变化不会涉及外部元素的变化,插删第一个结点方便。头结点和其他结点结构相同,只是以示区别: 删除表时,头结点引用计数减1,仅当引用计数为0时,才释放表中所有结点。 * §5.3 广义表(Lists) (3) 双链表示法 该方法类似于第6章的二叉链表。 结点结构 存储说明 typedef struct GLNode{ DataType data; //子表名字或原子数据 struct GLNode *link1, *link2; } *GList; * §5.3 广义表(Lists) 图示 特点 简洁方便,类似于二叉链表,可借助于二叉链表表示处理,易求长度深度。 在表结点中保存了子表的名字信息,有时子表名字和原子信息同样重要。 * §5.3 广义表(Lists) 例子 (姓名,工资收入(基本工资,午餐补助,津贴),扣除(公积金,水电费,其它),实发工资) 3. 运算:略 * * * * * * * * * * * * * * * * * * * * * * * 数 据 结 构 Ch.5数组和广义表 计 算 机 学 院 肖明军 Email: xiaomj@ /~xiaomj * §5.1 多维数组 多维数组 是最易处理的非线性结构。因为各元素类型一致,各维上下界固定,所以它最容易线性化,故可看做是线性表的拓广。例如:二维数组可以看做是由列向量组成的线性表。 * §5.1 多维数组 结构特性 例:二维数组 ,它属于两个向量;i th行和j th列。 除边界外,每个aij恰有两个直接前驱和两个直 接后继。 * §5.1 多维数组 非线性特征 i th行:前驱aij-1,后继aij+1 j th列:前驱ai-1j,后继ai-1j 仅有一个开始结点:a11 仅有一个终端节点:amn 其他边界上的结点只有一个直接前驱或一个直接后继,类似的m维数组 的每一个元素都属于m个向量。 * §5.1 多维数组 存储 一般均采用顺序方式存储,原因是结构中的结点不变动,内存是一维的,必须将多维数组线性化。 行优先(行主序)方式: 将(i+1)th行向量紧接在i th行向量之后: 特点:列下标变化快。Pascal、C等均是此方法。先排最右下标(多维)。 * §5.1 多维数组 列优先(列主序)方法 特点行下标变化最快,先排最左下标(可推广至多维)。Fortan是用此方法。 地址计算 一维存储地址(内部实现)。 基地址——开始结点存储地址Loc(a11). 维数——每维的上下界(若下界固定,则只须知道维长度) 每个元素占用的单元
您可能关注的文档
- 数学:1.2亿上数的认识课件(新人教版四年级上).ppt
- 数学软件Mateatica.ppt
- 数学模型在环境学中的应用.ppt
- 数学:1.1.ppt.ppt
- 数学课件:1--1 任意角.ppt
- 数学:1.3《形的性质》课件(苏科版九年级上).ppt
- 数学:13.5因式分解》课件(华东师大版八年级上).ppt
- 数学:2.1.《系统抽样》课件(新人教b版必修3).ppt
- 数学:10.7众数》课件(北京课改版七年级下).ppt
- 数学:10.6用科学计算器求平均数》课件(北京课改版七年级下).ppt
- 政治人教版7年级下册课件第1课第2框尊重他人是我的需要.ppt
- Unit5Whosedogisit?PartBReadandwrite(课件)-人教PEP版(2012)英语五年级下册.pptx
- 八下物理八年级物理下册第八章第三节摩擦力公开课教案教学设计课件测试卷练习卷课时训练练习公开课教案.ppt
- 八下物理八年级物理第十章第二节阿基米德原理课件(修改)公开课教案教学设计课件测试卷练习卷课时训练.ppt
- 八下物理83-大气压与人类生活公开课教案课件.ppt
- 6.3一元一次方程的应用(3)课件鲁教版(五四制)六年级数学下册.pptx
- 八下第8课经济体制改革课件(33张).ppt
- 八下历史-改革开放-课件公开课教案教学设计课件.ppt
- 八下物理初二物理人教版《动能和势能》课件(2)公开课教案教学设计课件测试卷练习卷课时训练练习公开.ppt
- 山东省师范大学附属中学高三第十一次模拟语文试题.doc
文档评论(0)