数据结构复习提纲(大作业在后面)计算机本科(2004年11月).docVIP

数据结构复习提纲(大作业在后面)计算机本科(2004年11月).doc

  1. 1、本文档共8页,可阅读全部内容。
  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文档。上传文档
查看更多
数据结构 复习提纲(大作业在后面) 计算机本科(2004年11月) 第一部分 题型 1.单选题:2分×14=28分 2.判断题:1分×10=10分 3.填空题:2分×10=20分 4.应用题:8分× 4=32分 5.程序题:5分× 2=10分 第二部分 复习提纲(不分题型,弄清原理,不要死记硬背) 1.简单复杂性的判断: (1)i=n; while(i=1) i=i/2; 其中i=n,n/2,n/22,…,n/2k, 需n/2k=1,即2k=n,所以复杂性为O(log2n) (2)i=1; while(i=n) i=i+2; 其中i=1,3,5,…,(2k-1),需2k-1=n,则频度k=(n+1)/2,复杂性为O(n) (3)i=1; while(i=n) i=i*3; 其中i=1,3,32,…,3k, 需3k=n,则频度k=log3n,复杂性为O(log3n) (4)i=1; while(i*i=n) i++; 其中i=1,2,3,…,k,需k2=n,则频度k=n1/2,复杂性为O(n1/2) 2.四种基本存储方式的特点?什么时候逻辑关系可以由存储地址表示?什么时候由指针表示?什么时候存储地址与结点内容有关系? 3.逻辑结构、存储结构、运算、算法、算法复杂性等,哪些与计算机有关?无关? 1.顺序表、单链表的存储、插入、删除运算特点?是否可以随机存取?顺序存取? 2.单链表中插入结点的基本步骤? 3.有头结点、无头结点的循环、非循环单链表为空的条件分别是什么? 4.用尾指针表示循环单链表有什么好处? 5.例:删除顺序表中所有的正数,要求移动次数小。 解:搜索顺序表,对每一个正数,先不删除,而是累计当前正数个数s,于是,对每个非正数,将它一次性前移s位。算法复杂性为O(n)。 void dels(sqlist *L) { int s,i; s=0; //正数计数器 for(i=0;iL-n;i++) if(L-data[i]0 s++; //累计当前正数 else if(s0) L-data[i-s]=l-data[i]; //向前移动s位 L-n=L-n-s; //调整表长 } 6.例:将顺序表中所有负数移动到表的前端,要求移动次数小。 解:双向扫描:从前向后找一个正数,再从后向前找一个负数,然后交换两者位置。复杂性为O(n)。 void moves(sqlist *L) { int i,j; datatype x; i=1;j=L-n; //删除A[1]到A[n]的所有零元素,设数组下标从1开始 while(ij) { while(L-data[i]0 ij) i++; //从前向后找正数 while(L-data[j]=0 ij) j??; //从后向前找负数 if(ij) { x=L-data[i];L-data[i]=L-data[j];L-data[j]=x; //交换 i++;j??; } } } 1.链队列、链栈是否都有必要设置头结点? 2.循环队列A[m]中,已知头指针、尾指针与元素个数中的任意两个,求另一个?队满条件? len=(rear-front+m)%m; rear=(front+len)%m; front=(rear-len+m)%m; 队满:front=(rear+1)%m 3.串长、空串、空白串、串连接、子串定位(模式匹配)等是何意? 1.稀疏矩阵、特殊矩阵的含义?为什么要对矩阵进行压缩存储? 2.三元组含义?一般矩阵按三元组存储能否节省空间? 3.广义表可分成几种?它们的图形表示特点如何? 4.例:从广义表A=(x,(a,b,c),y)中取出原子b。 在广义表中取某个元素,需要将该元素所在的子表逐步分离出来,直到所求的元素成为某个子表的表头,再用取表头运算取出。注意,最终取出某个元素时,不能用取表尾,因为它得到的是该元素组成的子表,而不是元素本身。本例的运算过程为 ①取表尾tail(A):得到B=((a,b,c),y) ②取表头head(B):得到C=(a,b,c) ③取表尾tail(C):得到D=(b,c) ④取表头head(D):得到b 总的过程为:head(tail(head(tail(A))))。 1.树所有结点的度数之和与结点数有何关系?与边数有何关系? 解:边数=度数和=结点数-1。因为度数就是孩子数,而根不是孩子,故度数和比结点总数少1。 2.只有3个结点的二叉排序树有几种形态? 解:有5种,见下图所示。 3.二叉树是否是树的特殊情形?是否是有序树的特殊情形?解:都不是 4.树和二叉树

文档评论(0)

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

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

1亿VIP精品文档

相关文档