数据结构第一章习题
- 格式:doc
- 大小:37.00 KB
- 文档页数:6
第一章概论习题一、选择题1.数据结构是具有【B 】的数据元素的集合。
A.相同性质B.相互关系C.相同运算D.数据项2.在计算机的存储结构中,逻辑上相邻的结点存储在物理位置上也相邻的连续存储单元里,称之为【 B 】。
A.逻辑结构B.顺序存储结构C.链式存储结构D.散列存储结构3.语句for(i=1;i<=n;i++) x++;的时间复杂度为【B 】。
A.O(1) B.O(n) C.O(n2) D.O(n3)4.下面不属于数据的存储结构的是【D 】。
A.散列存储B.链式存储C.索引存储D.压缩存储5.数据结构研究的是数据的【 A 】及它们之间的相互关系。
A.存储结构和逻辑结构B.存储和抽象C.理想与抽象D.理想与逻辑6.下面程序段的时间复杂度是【D 】。
for(i=0;i<2*n;i++)for(j=1;j<3*n;j++)A[i][j]=0;A.O(n) B.O(5n) C.O(6n2) D.O(n2) 7.数据的逻辑结构有两大类,分别是【 B 】。
A.顺序存储结构和链式存储结构B.线性结构和非线性结构C.压缩结构和非压缩结构D.有序结构和无序结构8.以下与数据的存储结构无关的术语是【D 】。
A.循环队列B.链表C.哈希表D.栈9.算法分析的两个主要方面是【A 】。
A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性10.下面程序段的时间复杂度是【D 】。
S=0;for(i=0;i<n;i++)for(j=0;j<m;j++)s=s+a[i][j];A.O(1) B.O(m+n) C.O(log2mn) D.O(m*n) 11.能够输入计算机并能被计算机处理的符号统称为【A 】。
A.数据B.数据元素C.数据结构D.数据类型12.以下属于逻辑结构的是【C 】。
A.顺序表B.哈希表C.有序表D.单链表13.线性结构的数据元素之间存在着【A 】的关系。
最新版《数据结构》各章习题及答案第一章绪论一、选择题1.组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2.数据结构是研究数据的()以及它们之间的相互关系。
(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。
① (A)数据元素(B)计算方法(C)逻辑存储(D)数据映像② (A)结构(B)关系(C)运算(D)算法5.算法分析的目的是()。
(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性6.计算机算法指的是(①),它必须具备输入、输出和(②)等5 个特性。
① (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法② (A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性二、判断题1.数据的机内表示称为数据的存储结构。
()2.算法就是程序。
()3.数据元素是数据的最小单位。
()4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。
()5.算法的时间复杂度取决于问题的规模和待处理数据的初态。
()三、填空题1.数据逻辑结构包括________、________、_________ 和__________ 四种类型,其中树形结构和图形结构合称为_____ 。
2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______ 个前驱结点;最后一个结点______后续结点,其余每个结点有且只有 _______ 个后续结点。
3.在树形结构中,树根结点没有_______ 结点,其余每个结点有且只有_______个前驱结点;叶子结点没有 ________ 结点,其余每个结点的后续结点可以_________。
一、单选题1、______ 是数据的最小单位。
A、数据项B、表元素C、信息项D、数据元素2、以下说法不正确的是______。
A、数据可由若干个数据元素构成B、数据项可由若干个数据元素构成C、数据项是不可分割的最小标识单位D、数据元素是数据的基本单位3、数据结构是指 ______ 的集合以及它们之间的关系。
A、数据B、结构C、数据元素D、计算方法4、计算机所处理的数据一般具备某种内在联系,这是指 ______。
A、数据和数据之间存在某种关系B、元素和元素之间存在某种关系C、元素内部具有某种结构D、数据项和数据项之间存在某种关系5、在数据结构中,与所使用的计算机无关的是数据的 ______ 结构。
A、逻辑B、存储C、逻辑和存储D、物理6、数据的逻辑结构可以分为 ______ 两类。
A、紧凑结构和非紧凑结构B、动态结构和静态结构C、线性结构和非线性结构D、内部结构和外部结构7、数据的逻辑结构是指 ______ 关系的整体。
A、数据项之间逻辑B、数据元素之间逻辑C、数据类型之间D、存储结构之间8、以下是数据结构中 ______ 属非线性结构。
A、串B、栈C、队列D、平衡二叉树9、以下属于逻辑结构是 ______。
A、双链表B、单链表C、顺序表D、有序表10、以下不属于存储结构是______。
A、顺序表B、线性表C、邻接表D、单链表11、在计算机中存储数据时,通常不仅要存储各数据元素的值,而且还有存储 ______。
A、数据元素之间的关系B、数据元素的类型C、数据的处理方法D、数据的存储方法12、数据结构在计算机内存中的表示是指 ______。
A、数据的逻辑结构B、数据结构C、数据元素之间的关系D、数据的存储结构13、在数据的存储中,一个节点通常存储一个 ______。
A、数据结构B、数据元素C、数据项D、数据类型14、在决定选取任何类型的存储结构时,一般不多考虑 ______。
A、各节点的值如何B、节点个数的多少C、对数据有哪些运算D、所用编程语言实现这种结构是否方便15、数据在计算机的存储器中表示时,逻辑上相邻的两个元素对应的物理地址也是相邻的,这种存储结构称之为 ______。
大学课程《数据结构》课后习题答案第 1 章绪论课后习题讲解1. 填空⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
【解答】数据元素⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。
【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。
⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。
【解答】集合,线性结构,树结构,图结构⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。
【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系⑸算法具有五个特性,分别是()、()、()、()、()。
【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。
【解答】自然语言,程序设计语言,流程图,伪代码,伪代码⑺在一般情况下,一个算法的时间复杂度是()的函数。
【解答】问题规模⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。
【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。
2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。
A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。
⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是()。
数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。
A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。
A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。
A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。
A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。
A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。
A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。
A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。
第一章 绪论练习一1、 设有数据逻辑结构为Data-Structure = (D,S),其中D={d 1, d 2, …, d 9},S={r},r={< d 1,d 3>, < d 1, d 8>,< d 2, d 3>, <d 2, d 4>, <d 2, d 5>, <d 3, d 9>,<d 5, d 6>,<d 8, d 9>,<d 9, d 7>,<d 4,d 6>,<d 4, d 7>},画出这个逻辑结构的图示,对于关系r ,那些结点是起始结点,那些结点是终端结点?2、 设n 为整数,试确定下列各程序中前置以@语句的频度(1) FOR (i=1;i<=n;i++){FOR (j=1;j<=i;j++){FOR (k=1;k<=j;k++) @ x+=delta; } }(2) X=91;y=100;WHILE (y>0){@ if (x>100) {x-=10;y--;} else x++; }3、 按增长率由小到大的顺序排列下列各函数:,log,log,,!,,,,)34(,)32(,)23(,22223100nn n n n n n n n n n nnnn n n n 2log22222,log),(loglog ,log4、设有以下三个函数:f(n)=21n 4+ n 2+1000, g(n)=15 n 4 +500n 3 h(n)=5000 n 3.5+nlogn判断下列断言正确与否: (1) f(n)是O(g(n)); (2) h(n)是O(f(n)); (3) g(n)是O(h(n)); (4) h(n)是 O(n 3.5) (5) h(n)是 O(nlogn) 5、试用数学归纳法证明:(1)∑=+--=ni n i x x x 01)1/()1( )且(01≥≠n x (2)∑==-ni n i 12)12()(1≥n 6、试写一算法自大到小依次输出顺序读入的三个整数X 、Y 、Z 的值。
《数据结构》习题集第一章序论思考题:1。
1简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类型、抽象数据类型作业题:1。
2设有数据结构(D,R),其中D={d1, d2, d3, d4}R={r1,r2}r1={<d1, d2〉,<d2,d3>,<d3,d4〉,〈d1, d4>,〈d4,d2>, 〈d4, d1〉}r2={(d1, d2),(d1,d3),(d1, d4),(d2, d4), (d2, d3)}试绘出其逻辑结构示意图。
1。
3设n是正整数。
试写出下列程序段中用记号“△”标注的语句的频度: (1)i=1; k=0;while(i〈=n-1){△k+=10*i;i++;}(2) i=1; k=0;do {△k+=10*i;i++;}while(i〈=n-1)(3)i=1; k=0;do {△k+ = 10*i; i++;}while(i==n);(4) i=1; j=0;while(i+j≤n) {△if(i〈j) i++;else j++;}(5) x=n; y=0; //n是不小于1的常数while(x〉=(y+1)*(y+1)){△y++;}(6)x=91; y=100;while ( y>0 ){△if(x>100) { x—=10; y——; }else x++ ;}(7) for( i=0; i〈n; i++)for( j=i; j〈n; j++)for( k=j; k〈n; k++)△x+=2;1。
4 试写一算法,自大至小依次输出顺序读入的三个整数X,Y和Z的值。
1.5 已知k阶斐波那契序列的定义为:f0=0,f1=0,……,f k—2=0,f k—1=1;f n=f n—1+f n-2+……+f n-k, n=k,k+1,……试编写求k阶斐波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。
一、选择题
1. 算法的计算量的大小称为计算的( )
A.效率 B. 复杂性 C. 现实性 D. 难度
3.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法
(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性
C. 确定性、有穷性、稳定性
D. 易读性、稳定性、安全性
4.一个算法应该是()
A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5.从逻辑上可以把数据结构分为()两大类。
A.动态结构、静态结构 B.顺序结构、链式结构
C.线性结构、非线性结构 D.初等结构、构造型结构
6.以下数据结构中,哪一个是线性结构()?
A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串
7.以下那一个术语与数据的存储结构无关?()
A.栈 B. 哈希表 C. 线索树 D. 双向链表
8.在下面的程序段中,对x的赋值语句的频度为()
FOR i:=1 TO n DO
FOR j:=1 TO n DO
x:=x+1;
A. O(2n) B.O(n) C.O(n2) D.O(log2n)
9.程序段 FOR i:=n-1 DOWNTO 1 DO
FOR j:=1 TO i DO
IF A[j]>A[j+1]
THEN A[j]与A[j+1]对换;
其中 n为正整数,则最后一行的语句频度在最坏情况下是()
A. O(n)
B. O(nlogn)
C. O(n3)
D. O(n2)
10.以下哪个数据结构不是多型数据类型()
A.栈 B.广义表 C.有向图 D.字符串
11.以下数据结构中,()是非线性数据结构
A.树 B.字符串 C.队 D.栈
12. 下列数据中,()是非线性数据结构。
A.栈 B. 队列 C. 完全二叉树 D. 堆
13.连续存储设计时,存储单元的地址()。
A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续
14.以下属于逻辑结构的是()。
A.顺序表 B. 哈希表 C.有序表 D. 单链表
二、判断题
1. 数据元素是数据的最小单位。
( )
2. 记录是数据处理的最小单位。
( )
3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;( )
4.算法的优劣与算法描述语言无关,但与所用计算机有关。
( )
5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
( )
6.算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。
( )
7.程序一定是算法。
( )
8.数据的物理结构是指数据在计算机内的实际存储形式。
( )
9. 数据结构的抽象操作的定义与具体实现有关。
( )
10. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。
( )
11. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
( )
12. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。
( )
13. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构. ( )
三、填空题
13. 下面程序段中带有下划线的语句的执行次数的数量级是( )
i:=n*n WHILE i<>1 DO i:=i div 2;
14. 计算机执行下面的语句时,语句s的执行次数为 _______ 。
FOR(i=l;i<n-l;i++)
FOR(j=n;j>=i;j--)
s;
15. 下面程序段的时间复杂度为________。
(n>1)
sum=1;
for (i=0;sum<n;i++) sum+=1;
16.设m.n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。
例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。
①以下是该函数的程序段,请将未完成的部分填入,使之完整
int f(m,n)
int m,n;
{ if(m==1)
return (1) ;
if(n==1){
return (2) ;}
if(m<n)
{return f(m,m);}
if (m==n)
{return 1+ (3) ;}
return f(m.n-1)+f(m-n, (4) );
}
②执行程序,f(6,4)= 。
17. 在有n个选手参加的单循环赛中,总共将进行______场比赛。
四.问答及应用
1什么是数据它与信息是什么关系
2什么是数据结构有关数据结构的讨论涉及哪三个方面
3数据的逻辑结构分为线性结构和非线性结构两大类。
线性结构包括数组、链表、栈、队列、优先级队列等; 非线性结构包括树、图等、这两类结构各自的特点是什么?
4 什么是抽象数据类型?试用C++ 的类声明定义“复数”的抽象数据类型。
要求
(1) 在复数内部用浮点数定义它的实部和虚部。
(2) 实现3个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的实部,虚部置为0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。
(3) 定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。
(4) 定义重载的流函数来输出一个复数。
5 用归纳法证明:
(1)
(2)
(3)
6 什么是算法算法的5个特性是什么试根据这些特性解释算法与程序的区别。
7 设n为正整数, 分析下列各程序段中加下划线的语句的程序步数。
(1) for (int i = 1; i <= n; i++) (2) x = 0; y = 0;
for (int j = 1; j <= n; j++) { for (int i = 1; i <= n; i++)
c[i][j] = 0.0; for (int j = 1; j <= i; j++)
for (int k = 1; k <= n; k++) for (int k = 1; k <= j; k++)
c[i][j] = c[i][j] + a[i][k] * b[k][j]; x = x + y;
}
(3) int i = 1, j = 1; (4) int i =1;
while (i<=n && j<=n) { do {
i = i + 1; j = j + i; for (int j = 1; j <= n; j++)
} i = i + j;
} while ( i < 100 + n );
8 试编写一个函数计算n!*2n的值,结果存放于数组A[arraySize]的第n个数组元素中,0 £ n
£ arraySize。
若设计算机中允许的整数的最大值为maxInt,则当n > arraySize或者对于某一个k (0 £ k £ n),使得k!*2k > maxInt时,应按出错处理。
可有如下三种不同的出错处理方式:
(1) 用cerr <<及exit (1)语句来终止执行并报告错误;
(2) 用返回整数函数值0, 1来实现算法,以区别是正常返回还是错误返回;
(3) 在函数的参数表设置一个引用型的整型变量来区别是正常返回还是某种错误返回。
试讨论这三种方法各自的优缺点,并以你认为是最好的方式实现它。
9 (1) 在下面所给函数的适当地方插入计算count的语句:
void d (ArrayElement x[ ], int n ) {
int i = 1;
do {
x[i] += 2; i += 2;
} while (i <= n );
; i = 1;
while ( i <= (n / 2) ) {
x[i] += x[i+1]; i++;
}
}
(2) 将由(1)所得到的程序化简。
使得化简后的程序与化简前的程序具有相同的count值。
(3) 程序执行结束时的count值是多少?
(4) 使用执行次数的方法计算这个程序的程序步数,画出程序步数统计表。