数据结构复习题目及答案.docx

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 1 《数据结构-C 语言版》 第一章 绪论 单项选择题 在数据结构中,数据的基本单位是 。 数据项 B. 数据类型 C. 数据元素 D. 数据变量 数据结构中数据元素之间的逻辑关系被称为 。 数据的存储结构 B. 数据的基本操作 C. 程序的算法 D. 数据的逻辑结构 在数据结构中,与所使用计算机无关的是数据的 。 存储结构 B. 逻辑和物理结构 C. 逻辑结构 D. 物理结构 在链式存储结构中,数据之间的关系是通过 体现的。 数据在内存的相对位置 B. 指示数据元素的指针 C. 数据的存储地址 D. 指针 计算算法的时间复杂度是属于一种 。 事前统计的方法 B. 事前分析估算的方法 C. 事后统计的方法 D. 事后分析估算的方法 在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是 。 n2 B. nlogn C. n D. logn 设使用某算法对 n 个元素进行处理,所需的时间是 T(n)=100nlog2n+200n+2000,则该算法的渐近时间复杂度为 。 O(1) B. O(n) C. O(200n) D. O(nlog2n) CDCBBDD 第二章 线性表 单项选择题 链表不具有的特点是 。 可随机访问任一元素 B. 插入和删除时不需要移动元素 C. 不必事先估计存储空间 D. 所需空间与线性表的长度正比 设顺序表的每个元素占 8 个存储单元。第 1 个单元的存储地址是 100,则第 6 个元素占用的最后一个存储单元的地址为 。 A. 139 B. 140 C. 147 D. 148 在线性链表存储结构下,插入操作算法 。 需要判断是否表满 B. 需要判断是否表空 C. 不需要判断表满 D. 需要判断是否表空和表满 在一个单链表中,若删除p 所指结点的后继结点,则执行 。 p-next = p-next-next; B. p-next = p-next; C. p = p-next-next; D. p = p-next; p-next = p-next-next; 将长度为n 的单链表接在长度为m 的单链表之后的算法时间复杂度为 。 O(n) B. O(1) C. O(m) D. O(m+n) 6.需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是 。 A. 单链表 B. 静态链表 C. 线性链表 D. 顺序存储方式 ACCABB 填空题 在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的 结点。 在单链表中,指针p 所指结点为最后一个结点的条件是 。 将两个各有n 个元素的有序表归并成一个有序表,其最少的比较次数是 。 在一个长度为n 的顺序表中第i 个元素(1≤i≤n)之前插入一个元素时,需向后移动元素的个数是 。 在长度为n 的顺序表中插入一个元素的时间复杂度为 。 前驱 p-next==NULL 3.1 4.n-i+1 5.O(n) 例题解析 【例2-1】 编写一个算法将一个单链表逆转,要求在原表上进行,不允许重新建链表。解:该算法可以在遍历原表的时候将各结点的指针逆转,从原表的第一个结点开始,头 结点的指针在最后修改成指向原表的最后一个结点,即新表的第一个结点。实现本题功能的函数如下: void inverse(Lnode *h) {s=h-next; if(s==NULL) return; q=NULL; p=s; while(p!=NULL) { p=p-next; s-next=q; /*逆转指针*/ q=s; /*指针前移*/ s=p; } h-next=q; /*头指针 h 的后继是 p*/ } 【例2-2】 编写一算法将两个按元素值递增有序排列的单链表A 和 B 归并成一个按元素值递增有序排列的单链表C。 解:对于两个或两个以上的,结点按元素值有序排列的单链表进行操作时,应采用“指 针平行移动,依次扫描完成”的方法。从两表的第一个结点开始顺链表逐个将对应数据元素 进行比较,复制小的并插入 c 表尾。当两表中之一已到表尾,则复制另一个链表的剩余部分, 插入到 c 表尾。设 pa、pb 分别指向两表当前结点,p 指向 c 表的当前表尾结点。若设A 中当前所指的元素为a,B 中当前所指的元素为b,则当前应插入到 C 中的元素c 为 ?bc ? ? ?b ? a ? b a ? b 例如:A=(3,5,8,11) B=(2,6,8,9,11,15,20) 则 C=(2,3,5,6,8,8,9,11,11,15,20) 实现本题功能的函数如下: Lnode *hb(Lnode *pa,Lnode *pb) {Ln

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

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

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档