数据结构复习题目解析.docVIP

  • 81
  • 0
  • 约3.03万字
  • 约 32页
  • 2017-06-05 发布于湖北
  • 举报
第1章 概论 练习题 一、单项选择题 1.在数据结构中,从逻辑上可以把数据结构分为 (B) A.紧凑结构和非紧凑结构 B.线性结构和非线性结构 C.内部结构和外部结构 D.动态结构和静态结构 2.若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为 (D) A.顺序存储结构 B.链式存储结构 C.索引存储结构 D.散列存储结构 3.算法分析的两个主要方面是 (B) A.正确性和简明性 B.时间复杂性和空间复杂性 C.可读性和可维护性 D.数据复杂性和程序复杂性 4.线性表采用链式存储结构时,要求内存中可用存储单元地址 (A) A.不一定连续的 B.部分地址必须是连续的 C.必须是连续的 D.一定是不连续的 5.算法指的是 (C) A.计算机程序 B.解决问题的计算方法 C.解决问题的有限运算序列 D.排序算法 二、填空题 6.数据结构一般包括逻辑结构、存储结构和数据运算三个方面的内容. 7.数据的逻辑结构可分为线性结构、非线性结构两大类. 8.数据的存储结构(物理结构)一般可以用顺序存储结构、链式存储结构、索引存储结构及散列存储结构等四种存储方法表示. 9.在选用求解一个问题的算法时,除了首先考虑算法是“正确的”之外,还主要考虑执行算法所需要的时间、执行算法所需要的存储空间及算法应易于理解、易于编程、易于调试等三点。 10.设有一批数据元素,为了最快地存取某元素,宜用顺序结构存储,为了方便的插入一个元素,宜用链式结构存储. 三、应用题 设n为正整数,利用大“O”记号,写出下列各程序段的时间复杂度. 11.for (i = 1; i = n; i++){ y = y + 1; for (j = 1; j = 2 * n; j++) x = x + 1;} 分析:语句 “y = y + 1;”执行n次,语句“x = x + 1;”各执行次,故该程序段的时间复杂度为O(). 12.s = 0; while (n = (s + 1) * (s + 1)) s = s + 1; 分析:语句 “s = s + 1;”执行次,故该程序段的时间复杂度为O(). 13.x = 1; sum = 0; for (i = 0; i = n; i++){ x = x * i; sum = sum + x; } 分析:语句 “x = x * i”和“sum = sum + x;”各执行n次,故该程序段的时间复杂度为O(n). 14.for (i = 1i = n; i++) if (3 * i =n) for (j = 3 * i; j = n; j++){ x++; y = 3 * x + 2; } 分析:语句 “x++”和“y = 3 * x + 2;”各执行次,故该程序段的时间复杂度为O(). 15.for (i = 1; i = n; i++) for (j = 1; = i; j++){ x = x + 1; } 分析:语句 “x = x + 1;”执行次,故该程序段的时间复杂度为O(). 16.sum = 0; i = 0; while (i = 100){ sum = sum + i; i++; }sum = sum + i;”和“i++;”各执行100次,故该程序段的时间复杂度为O(1). 17.x = 1; s = 0; for (i = 1; i = n; i++){ ++x; s += x; } for (j = 1; j = n; j++) for (k = 1; k = n; k++){ x++; s = s + x; }++x;”执行n次,语句“x++;”和“s = s + x;”各执行次,故该程序段的时间复杂度为O(). 第2章 n的顺序表的第i 个位置上插入一个元素,元素的移动次数为 (A) A. B. C. D. 2.若一个顺序表中第一个元素的存储地址为1000,每个元素占4个地址单元,那么,第6个元素的存储地址应是 (A) A.1020 B.1010 C.1016 D.1024 3.带头结点的单链表(以head为头指针)为空的判断条件是 (C) A.head != NULL B.head ? next == head C.head ? nex

文档评论(0)

1亿VIP精品文档

相关文档