数据结构大学期末复习重点.docVIP

  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文档。上传文档
查看更多
数据结构大学期末复习重点

一 一、名词解释: 数据类型和抽象数据类型,逻辑结构。 1、数据类型-高级语言中指数据的取值范围及其上可进行的操作的总称。 2、抽象数据类型-简称ADT,是指一个数学模型以及定义在该模型上的一组操作。可用三元组表示(D,S,P),其中,D是数据对象,S是D上的关系集,P是对D的基本操作集。如:ADT 抽象数据类型名{ 数据对象:数据对象的定义 数据关系:数据关系的定义 基本操作:基本操作的定义 }ADT 抽象数据类型名 二、试依照三元组的抽象数据类型分别写出抽象数据类型有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 ADT Yls{ 数据对象:D={fz,fm|fz,fm∈N且fm≠0} 数据关系:R={fz,fm|fz为分子,fm为分母} 基本操作:IntiYls(z,z1,z2) 操作结果:构造有理数z,其分子、分母分别被赋以z1、z2的值。 DestroyYls(z) 操作结果:有理数z被销毁。 Getfz(z,fanzi) 初始条件:有理数已存在。 操作结果:用fanzi返回z的分子值。 Getfm(z,fanmu) 初始条件:有理数已存在。 操作结果:用fanmu返回z的分母值。 Add(z1,z2,sum) 初始条件:有理数已存在。 操作结果:用sum返回2个有理数之和。 Sub(z1,z2,sub) 初始条件:有理数已存在。 操作结果:用sub返回2个有理数之差。 Mul(z1,z2,mul) 初始条件:有理数已存在。 操作结果:用mul返回2个有理数之积。 Div(z1,z2,div) 初始条件:有理数已存在。 操作结果:用div返回2个有理数之商。 }ADT Yls 三、设N为正整数。试确定下列名程序段中前置以记号@语句的频度: (1)i=1;k=0; do{ @k+=10*i; i++; }while (i=n-1); 频度:n=1时,为1;n≥2时,为n-1。 (2) i=1;k=0; while(i=n-1) { i++; @k+=10*i; } 频度:n=1时,为1;n≥2时,为n-1。 (3) x=91;y=100; while(y0){ @if(x100){x-=10;y--;} else x++; } 频度:1100 二 填空题 1、在顺序表中插入或删除一个元素,需要平均移动( )元素,具体移动的元素个数与( )有关。 表中的一半、表长和该元素在表中的位置 2、在单链表中设置头结点的作用是( )。 插入和删除首元素时不必进行特殊的处理。 二、对以下单链表分别执行下列各程序段,并画出结果示意图。 T=P; While(T!=NULL){T—data=T—data*2;T=T—next;} 答案在黑板上画。 T=P; While(T—next!=NULL){T—data= T—data*2;T=T—next;} 答案在黑板上画。 三、已知L是带表头结点的非空单链表,且P结点既不是第一个元素结点,也不是最后一个元素结点,请写出相应的语句序列完成下面的操作: 删除P结点的直接前驱结点的语句序列是: Q=P; P=L; While(P-next-next!=Q) P=P-next; p-next=p-next-next; 删除最后一个元素结点的语句序列是: Q=P; While(Q-next-next!=NULL) {P=Q;Q=Q-next;} P-next=p-next-next; free(Q); 四、已知P结点是某双向链表的中间结点,请写出相应的语句序列完成下面的操作: 1、在P结点后插入S结点的语句序列是: s-next=p-next; p-next-prior=s; p-next=s; s-prior=p; 2、删除P结点的直接后继结点的语句序列是: p-next-next-prior=p;

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档