2015秋西南大学《数据结构》第二次作业及答案

合集下载

数据结构习题及参考答案

数据结构习题及参考答案

习题1一、单项选择题1.数据结构是指()。

A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。

A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3.树形结构是数据元素之间存在一种()。

A.一对一关系B.多对多关系C.多对一关系D.一对多关系4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。

for(i=1; i<=n; i++)for(j=i; j<=n; j++)x++;A.O(1)B.O(2n)C.O(n)D.O(3n)5.算法分析的目的是(1),算法分析的两个主要方面是(2)。

(1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性(2) A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。

(1) A.计算方法 B.排序方法C.解决问题的有限运算序列D.调度方法(2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。

A.低B.高C.相同D.不好说8.数据结构作为一门独立的课程出现是在()年。

A.1946B.1953C.1964D.19689.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。

A.正确B.错误C.前半句对,后半句错D.前半句错,后半句对10.计算机内部数据处理的基本单位是()。

A.数据B.数据元素C.数据项D.数据库二、填空题1.数据结构按逻辑结构可分为两大类,分别是______________和_________________。

2.数据的逻辑结构有四种基本形态,分别是________________、__________________、__________________和__________________。

(完整word版)数据结构试题集(包含答案完整版)

(完整word版)数据结构试题集(包含答案完整版)

第一章概论一、选择题1、研究数据结构就是研究(D )。

A. 数据的逻辑结构B。

数据的存储结构C. 数据的逻辑结构和存储结构D。

数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。

A。

空间复杂度和时间复杂度 B. 正确性和简单性C。

可读性和文档性D。

数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

A。

图B。

树C。

广义表D。

栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。

A. 可执行性、可移植性和可扩充性B。

可执行性、有穷性和确定性C。

确定性、有穷性和稳定性 D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

for(i=0;i<m;i++)for(j=0;j〈n;j++)a[i][j]=i*j;A. O(m2) B。

O(n2) C。

O(m*n) D. O(m+n)6、算法是(D )。

A。

计算机程序 B. 解决问题的计算方法C。

排序算法 D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。

A。

O(n) B. O(nlog2n) C。

O(n2) D. O (log2n)8、下面程序段的时间复杂度为( C ).i=1;while(i<=n)i=i*3;A. O(n)B。

O(3n) C。

O(log3n) D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。

A. 结构B。

关系C。

运算D。

算法10、下面程序段的时间复杂度是(A )。

i=s=0;while(s<n){i++;s+=i;}A. O(n) B。

O(n2)C。

O(log2n)D。

O(n3)11、抽象数据类型的三个组成部分分别为(A)。

A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。

西南大学《数据结构》网上作业及参考答案

西南大学《数据结构》网上作业及参考答案

=================================================================================================== 1:[论述题]1、何时选用顺序表、何时选用链表作为线性表的存储结构为宜?2、为什么在单循环链表中设置尾指针比设置头指针更好?3、确定下列算法中输出语句的执行次数,并给出算法的时间复杂度。

(1)void combi (int n){ int I,j,k;for ( I=1; I<=n; I++)for ( j=I+1; j<=n; j++)for ( k=j+1; k<=n; k++)cout<<I,J,K;}< st1:citation>(2) void binary ( int n){ while(n){cout<<N;n=n/2;}}4、常用的存储表示方法有哪几种?5.分析以下程序段的时间复杂度。

a=0;b=1;①for(i=2;i〈=n;i++)②{s=a+b;③b=a;④a=S;⑤}6.对于一个栈,给出输入项A,B,C。

如果输入项序列由A,B,C组成,试给出全部可能的输出序列7、已知一个顺序表中的元素按元素值非递减有序排列,编写一个函数删除表中多余的值相同的元素。

===================================================================================================参考答案:1、答:在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑:1.基于空间的考虑。

当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。

西南大学网教 (0012)《数据结构》大作业A 答案

西南大学网教 (0012)《数据结构》大作业A 答案

则关键字为49的地址为。

9)数据结构被形式地定义为(D, R),其中D是的有限集合,R是D上的有限集合。

10)一个算法的效率分为效率和效率。

3、应用题1)编写算法,将一个头指针为head不带头结点的单链表改造为一个单向循环链表,并分析算法的时间复杂度。

2)已知二叉树的先序遍历序列为ABCDEFGH,中序遍历序列为CBEDFAGH,画出二叉树。

然后写出该二叉树的后序遍历序列。

3)试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。

4)已知图G如下所示,根据Prim算法,构造最小生成树。

(要求给出生成过程)5)设哈希表HT表长m为13,哈希函数为H(k)=k MOD m,给定的关键值序列为{19,14,23,10,68,20,84,27,55,11}。

试求出用线性探测法解决冲突时所构造的哈希表,并求出在等概率的情况下查找成功的平均查找长度ASL。

二、大作业要求大作业共需要完成22道题:第1大题必做,满分30分;第2大题必做,满分30分;第3大题选作2题,满分40分。

答卷提交要求:考试题提前公布,学生下载试题和答题卷后,在答题卷上答题。

完成后需网上提交答卷。

答卷于11月20日--12月6日通过点击页面左侧导航栏内“我的考试”-“课程论文/大作业”提交。

1、选择题1) C 2) C 3) D 4) A 5) C6) C 7) B 8) D 9) A 10) A2、填空题1) l==l->next2)栈顶3)三元组顺序表十字链表。

4)LOC (A[0][0])+(n*i+j)*k5)R[2i+1]6) 先序遍历7)n-18)99) 数据元素关系10)时间效率空间效率3、应用题2)已知二叉树的先序遍历序列为ABCDEFGH,中序遍历序列为CBEDFAGH,画出二叉树。

然后写出该二叉树的后序遍历序列。

答:后序遍历序列CEFDBHGA3)试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。

(完整版)数据结构试题包含答案

(完整版)数据结构试题包含答案

一、一、单选题(每题2 分,共20分)1. 1. 栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2. 2. 用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3. 3. 以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4. 4. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

A.688 B.678 C.692 D.6965. 5. 树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6. 6. 二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.7. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.8. 对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.9. 对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.10. 设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、二、填空题(每空1分,共26分)1. 1. 通常从四个方面评价算法的质量:_________、_________、_________和_________。

数据结构(C语言版)(第2版)课后习题答案

数据结构(C语言版)(第2版)课后习题答案

数据结构(C语言版)(第2版)课后习题答案李冬梅2015.3目录第1章绪论 (1)第2章线性表 (5)第3章栈和队列 (13)第4章串、数组和广义表 (26)第5章树和二叉树 (33)第6章图 (42)第7章查找 (54)第8章排序 (65)第1章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。

如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。

数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。

在有些情况下,数据元素也称为元素、结点、记录等。

数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。

数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。

例如,学生基本信息表中的学号、姓名、性别等都是数据项。

数据对象:是性质相同的数据元素的集合,是数据的一个子集。

例如:整数数据对象是集合N={0,±1,±2,…},字母字符数据对象是集合C={‘A’,‘B’,…,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。

逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。

因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

存储结构:数据对象在计算机中的存储表示,也称为物理结构。

抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。

具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。

2015考研计算机数据结构试题及答案

2015考研计算机数据结构试题及答案

2015年考研必备资料2015年考研计算机数据结构试题及答案目录2015年考研计算机数据结构试题及答案(1) (2)2015年考研计算机数据结构试题(1) (2)2015年考研计算机数据结构试题答案(1) (5)2015年考研计算机数据结构试题及答案(2) (6)2015年考研计算机数据结构试题(2) (6)2015年考研计算机数据结构试题答案(2) (9)2015年考研计算机数据结构试题及答案(3) (11)2015年考研计算机数据结构试题(3) (11)2015年考研计算机数据结构试题答案(3) (13)2015年考研计算机数据结构试题及答案(4) (15)2015年考研计算机数据结构试题(4) (15)2015年考研计算机数据结构试题答案(4) (17)2015年考研计算机数据结构试题及答案(5) (19)2015年考研计算机数据结构试题(5) (19)2015年考研计算机数据结构试题答案(5) (21)2015年考研计算机数据结构试题及答案(1)2015年考研计算机数据结构试题(1)一、选择题(24分)1.下列程序段的时间复杂度为( )。

i=0,s=0; while (s(A) O(n1/2) (B) O(n1/3) (C) O(n) (D) O(n2)2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( )存储方式最节省运算时间。

(A) 单向链表 (B) 单向循环链表(C) 双向链表 (D) 双向循环链表3.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为( )。

(A) s->next=p->next;p->next=-s; (B) q->next=s; s->next=p;(C) p->next=s->next;s->next=p; (D) p->next=s;s->next=q;4.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( )。

数据结构第二次作业答案

数据结构第二次作业答案

数据结构第二次作业答案一、单项选择题1. C2. B3. A4. A5. D6. A7. D 8. C 9. D 10. C 11. D 12. C 13. A二、填空题1. 存储2. 先进先出3. 栈顶指针4. 队尾5. 一6. 局部变量7. 表尾8. 重数9. 3 10. 6 11. 6 12. 2h+1-1三、判断题1. 错2. 对3. 对4. 对5. 错6. 对7. 对8. 错9. 错四、运算题1.叶子结点数: 5单分支结点数:3两分支结点数:2三分支结点数:12.元素 34 56 58 63 94比较次数 2 1 3 4 43.左子树为空的所有单支结点:15,23,42,44右子树为空的所有单支结点:304.插入时造成不平衡的结点个数:45.结点 a b c d e出度 1 1 2 1 2入度 2 2 1 1 16.(1) 1,3,4,6,5,2 (3分)(2) 1,3,2,4,5,6 (3分)五、算法分析题1.利用"栈"作为辅助存储,将队列中的元素逆置(即相反次序放置)。

2.(1) q = q->lLink(2) return 1(3) return 03.1→21→32→34.(1) return PT(2) (PT=ParentPtr(BT->right,BT,X))(3) return NULL 或return 0六、算法设计题1.float poly(float x, float A[], int n) { if(!n) return A[0];else return x*poly(x, A, n-1)+A[n];}2.int BTreeHeight(BinTreeNode* BT){if(BT==NULL)//对于空树,返回-1并结束递归return –1;else{//计算左子树的高度int h1=BTreeHeight(BT->left); //计算右子树的高度int h2=BTreeHeight(BT->right); //返回树的高度if(h1>h2) return h1+1;else return h2+1;}}3.int BTreeLeafCount(BinTreeNode* BT){if(BT==NULL) return 0;else if(BT->left==NULL && BT->right==NULL) return 1;else return BTreeLeafCount(BT->left)+BTreeLeafCount(BT->right);}数据结构第三次作业答案一、单项选择题1. D2. A3. B4. C5. C6. A7. B 8. C 9. C 10. A 11. A 12. D 13. C二、填空题1. 2i+12. 最大值3. 20.54. 右子树5. 16. 右单旋转7. 2(n-1)8. 29. n-1 10. 高 11. 直接插入三、判断题1. 错2. 对3. 对4. 对5. 错6. 对7. 错8. 对四、运算题1.(1) 1,5,6,4,3,2(2) 1,5,3,2,6,42.顶点: 0 1 2 3 4 5 6路径长度: 0 16 10 14 25 21 313.拓扑序列:1,3,6,0,2,5,4,74.所有关键活动:<0,1>5,<1,3>10,<3,4>9,<4,5>12关键路径长度:365.(1)归并路数:5 (2)需要归并躺数:2答案解释:(1) 设归并路数为k,初始归并段个数m = 80,根据归并趟数计算公式S = ⎡log k m⎤ = ⎡log k80⎤ = 3得:k3≥80。

数据结构-试卷二及答案

数据结构-试卷二及答案

数据结构-试卷二及答案一、判断(每小题 1 分,共 10 分) 1.数据的存储结构是数据的逻辑结构的存储映象,不仅要存储数据元素的值,还要存储元素之间的相互关系。

2.用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。

3.完全二叉树的叶子结点只能出现在最后一层上。

4.折半查找方法要求待查表必须是有序的顺序表。

5.在有向图 G 中, V 2 , V 1 和 V 1 , V 2 是两条不同的边。

6.图的最小生成树是唯一的。

7.从循环单链表的某一结点出发,只能找到它的后继结点,不能找到它的前趋结点。

8.在单链表中,头结点是必不可少的。

9.对快速排序来说,初始序列为正序和反序,都是最坏情况。

10.广义表是特殊的线性表。

二、选择(每题 1 分,共 15 分) 1.设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S 。

若每个元素出栈后立即进入队列 Q ,且 7 个元素出队的顺序是bdcfeag ,则栈 S 的容量至少是()。

A.1 B.2 C.3 D.4 2.下列线索二叉树1/ 8中(用虚线表示线索),符合后序线索树定义的是( )。

3.已知广义表 A= (( a,b ) ,(c,d) ) , 则 head(A) 等于 ( )。

A.(a,b) B.((a,b)) C.a,b D.a 4.设字符串s1=‘ABCDEFG’,s2=‘PQRST’, 则运算s=strcat(strsub(s1,2,strlen(s2)),strsub (s1,strlen(s2),2))后结果为()。

A.BCQR B.BCDEF C.BCDEFG D.BCDEFEF 5.具有 8 个顶点的连通图的深度优先生成树,其边数为()。

A.8 B.9 C.7 D.6 6.算法分析的两个主要方面是()。

A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 7.下列四种排序中()的空间复杂度最大。

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题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、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。

2015年数据结构期末考试题及答案,推荐文档(2021年整理)

2015年数据结构期末考试题及答案,推荐文档(2021年整理)

2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改) 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改))的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改)的全部内容。

2012年数据结构期末考试题及答案一、选择题1.在数据结构中,从逻辑上可以把数据结构分为 C 。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。

A.数据的存储结构B.数据结构C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。

A.逻辑B.存储C.逻辑和存储D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C .A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。

A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便.6.以下说法正确的是 D 。

A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A .(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2) 。

数据结构(第二版)模拟测试题4套及答案

数据结构(第二版)模拟测试题4套及答案

试卷B一、选择题(本题共20分,每题2分)1.在数据结构中,从逻辑上可以把数据结构分成( ) 。

A .动态结构和静态结构 B. 线性结构和非线性结构 C. 紧凑结构和非紧凑结构 D. 内部结构和外部结构 2. 下列程序段的时间复杂度是( )count=0;for(k=1;k<=n;k*=2) for(j=1;j<=n;j++) count++;A.O(nlog2n)B.O(n)C.O(log2n)D.O(n2) 3. 以下描述错误的是:( )A. 线性表是n 个数据元素的有限非空集合。

B. 栈和队列都是操作受限的线性表。

C. 串(或字符串)是由零个或多个字符组成的有限序列。

D. 非空栈中的栈顶指针top 始终指向栈顶元素的下一个位置。

4. 若采用少用一个队列空间的方法来区分队满队空两种状态,则判定一个顺序循环队列 Q (最大队列长度MAXSIZE )为满队列的条件是( )。

A. Q.front=Q.rearB. Q.front!=Q.rearC. Q.front=(Q.rear+1) % MAXSIZED. Q.front!=(Q.rear+1) % MAXSIZE 5. 按照二叉树的定义,具有 3 个结点的二叉树有( )种。

A. 3 B. 4 C. 5 D. 66. 设矩阵A (如下图所示)是一个对称矩阵,为了节省存储,将其下三角(包括对角线)部分按行序存放在一维数组 B[n(n+1)/2]中,对下三角部分中任一元素 ai,j(i ≥j),在一维数组 B 的下标位置k 的值是( )。

A. i(i-1)/2+j-1 B. i(i-1)/2+j C. i(i+1)/2+j-1 D. i(i+1)/2+j0,01,01,11,01,11,1...............n n n n a a a A a a a ----⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦7. 有一个有序表为{5, 18,23, 33, 42, 54,56,78},当折半查找56时,经过( )次比较后查找成功。

2017年6月西南大学继续教育学院《数据结构》0012大作业答案

2017年6月西南大学继续教育学院《数据结构》0012大作业答案

p=p->next;
p->next=head;
}
设单链表的长度(数据结点数)为N,则该算法的时间主要花费在查找链表最后一个结点上(算法中的while 循环),所以该算法的时间复杂度为O(N)。

2)已知二叉树的先序遍历序列为ABCDEFGH,中序遍历序列为CBEDFAGH,画出二叉树。

然后写出该二叉树的后序遍历序列。

3) 试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。

1118 1230 WPL=12*1+(4+5+6)*3+(1+2)*4=12+45+12=69
4) 已知图G如下所示,根据Prim算法,构造最小生成树。

(要求给出生成过程)
5)设哈希表HT表长m为13,哈希函数为H(k)=k MOD m,给定的关键值序列为{19,14,23,10,68,20,84,27,55,11}。

试求出用线性探测法解决冲突时所构造的哈希表,并求出在等概率的情况下查找成功的平均查找长度ASL。

二、大作业要求
大作业共需要完成22道题:
第1大题必做,满分30分;
第2大题必做,满分30分;
第3大题选作2题,满分40分。

三、大作业提交方式(网络课程由网继院考务办在试题卷和管理系统中填写;面授课程根据任课教师要求提交):。

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案《数据结构》自考复习思考试题○10一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合C. 类型的有限集合D. 关系的有限集合2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( )A. n-i+1B. iC. i+1D. n-i3. 若不带头结点的单链表的头指针为head,则该链表为空的判定条件是( )A. head==NULLB. head->next==NULLC. head!=NULLD. head->next==head4. 引起循环队列队头位置发生变化的操作是( )A. 出队B. 入队C. 取队头元素D. 取队尾元素5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( )A. 2,4,3,1,5,6B. 3,2,4,1,6,5C. 4,3,2,1,5,6D. 2,3,5,1,6,46. 字符串通常采用的两种存储方式是( )A. 散列存储和索引存储B. 索引存储和链式存储C. 顺序存储和链式存储D. 散列存储和顺序存储7. 设主串长为n,模式串长为m(m≤n),则在匹配失败情况下,朴素匹配算法进行的无效位移次数为( )A. mB. n-mC. n-m+1D. n8. 二维数组A[12][18]采用列优先的存储方法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A[9][7]的地址为( )A. 429B. 432.C. 435D. 4389. 对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))的结果是( )A. (e,f)B. ((e,f))C. (f)D. ( )10. 下列图示的顺序存储结构表示的二叉树是( )11. n个顶点的强连通图中至少含有( )A. n-1条有向边B. n条有向边C. n(n-1)/2条有向边D. n(n-1)条有向边12. 对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排序的结果为( )A. (19,23,56,34,78,67,88,92)B. (23,56,78,66,88,92,19,34)C. (19,23,34,56,67,78,88,92)D. (19,23,67,56,34,78,92,88)13. 若在9阶B-树中插入关键字引起结点分裂,则该结点在插入前含有的关键字个数为( ) A. 4 B. 5C. 8D. 914. 由同一关键字集合构造的各棵二叉排序树( )A. 其形态不一定相同,但平均查找长度相同B. 其形态不一定相同,平均查找长度也不一定相同C. 其形态均相同,但平均查找长度不一定相同.D. 其形态均相同,平均查找长度也都相同15. ISAM文件和VSAM文件的区别之一是( )A. 前者是索引顺序文件,后者是索引非顺序文件B. 前者只能进行顺序存取,后者只能进行随机存取C. 前者建立静态索引结构,后者建立动态索引结构D. 前者的存储介质是磁盘,后者的存储介质不是磁盘二、填空题(本大题共10小题,每空2分,共20分)16. 数据的逻辑结构在计算机存储器内的表示,称为数据的____________。

数据结构考试试题库含答案解析

数据结构考试试题库含答案解析

数据结构习题集含答案目录目录 (1)选择题 (2)第一章绪论. (2)第二章线性表. (4)第三章栈和队列. (6)第四章串. (7)第五章数组和广义表 (8)第六章树和二叉树 (8)第七章图. (11)第八章查找. (13)第九章排序. (14)简答题 (19)第一章绪论. (19)第二章线性表. (24)第三章栈和队列. (26)第四章串. (28)第五章数组和广义表 (29)第六章树和二叉树 (31)第七章图. (36)第八章查找. (38)第九章排序. (39)编程题 (41)第一章绪论. (41)第二章线性表. (41)第三章栈和队列. (52)第四章串. (52)第五章数组和广义表 (52)第六章树和二叉树 (52)第七章图. (52)第八章查找. (52)第九章排序. (57)选择题第一章绪论1. 数据结构这门学科是针对什么问题而产生的?( A )A、针对非数值计算的程序设计问题 B 、针对数值计算的程序设计问题C、数值计算与非数值计算的问题都针对D、两者都不针对2. 数据结构这门学科的研究内容下面选项最准确的是( D )A、研究数据对象和数据之间的关系 B 、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3. 某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下面关于数据对象、数据元素、数据项描述正确的是( C )A、某班级的学生成绩表是数据元素,90 分是数据项B、某班级的学生成绩表是数据对象,90 分是数据元素C、某班级的学生成绩表是数据对象,90 分是数据项D、某班级的学生成绩表是数据元素,90 分是数据元素4. *数据结构是指(A )。

A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5. 数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C )。

A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6. 算法分析的目的是( C )A、找出数据的合理性B、研究算法中的输入和输出关系C、分析算法效率以求改进D、分析算法的易懂性和文档型性7. 算法分析的主要方法( A )。

《数据结构》西南大学网上作业题及答案

《数据结构》西南大学网上作业题及答案

1、用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则所采用的排序方法是()A. 选择排序B. 希尔排序C. 归并排序D. 快速排序本题参考答案: D2、不定长文件是指()A. 文件的长度不固定B. 记录的长度不固定C. 字段的长度不固定D. 关键字项的长度不固定本题参考答案:A3、如下陈述中正确的是()A. 串是一种特殊的线性表B. 串的长度必须大于零C. 串中元素只能是字母D. 空串就是空白串本题参考答案:C4、将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为()A. O(1)B. O(n)C. O(m)D. O(m+n)本题参考答案:A5、设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()A. front=front+1B. front=(front+1)%(m-1)C. front=(front-1)%mD. front=(front+1)%m本题参考答案:D6、计算机算法必须具备输入、输出和等5个特性D. 可行性、确定性和有穷性本题参考答案:D7、有8个结点的无向图最多有28 条边8、不含任何结点的空树是一棵树也是一棵二叉树9、一棵深度为6的满二叉树有31 个分支结点10、把一棵树转换为二叉树后,这棵二叉树的形态是唯一的11、在对n个元素的序列进行排序时,堆排序所需要的附加存储空间是: O(1)12、若需要在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是归并排序13、设哈希表长m=14,哈希函数H(key)=key MOD 11。

表中已有4个结点:addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7 其余地址为空,如用二次探测再散列处理冲突,则关键字为49的地址为: 814、设一棵完全二叉树有300个结点,则共有150 个叶子结点15、由3个结点所构成的二叉树有 5 种形态.16、设有两个串p和q,求q在p中首次出现的位置的运算称作:模式匹配17、栈中元素的进出原则是: 后进先出18、链表是一种采用链式存储结构存储的线性表.19、数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:顺序存储结构20、一个具有n个顶点的有向图最多有(n×(n+1)/2 )条边21、判断一个循环队列Q(最多n个元素)为满的条件是: Q->front==(Q->rear+1)%n22、在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是:p->next=p->next->next23、在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是: q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;24、在一棵度为3的树中,度为3的结点个数为2,度为2 的结点个数为1,则度为0的结点个数为( 5 )25、算法指的是解决问题的有限运算序列26、在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为n*n-2e27、线性表采用链式存储时,结点的存储地址和头结点的存储地址相连续28、抽象数据类型的组成部分分别为:1. A. 数据对象 B. 存储结构 C. 数据关系 D. 基本操作29、不具有线性结构的数据结构是:1. A. 图 B. 栈 C. 广义表 D. 树30、算法分析的两个主要方面是( )1. A. 正确性 B. 简单性 C. 空间复杂度 D. 时间复杂度31、树在实际应用中采用多种不同的形式表示和存储1. A.√32、完全二叉树一定是满二叉树1. B.×33、在完全二叉树中,叶节点个数比分支节点个数多11. B.×34、任何二叉搜索树中同一层的结点从左到右是有序的(从小到大)。

《数据结构》复习题及参考答案

《数据结构》复习题及参考答案

《数据结构》复习题及参考答案数据结构复习题及参考答案1. 什么是数据结构?数据结构是一种组织和存储数据的方式,它涉及到数据的组织方式、存储方式、访问方式以及对数据进行操作的算法等。

数据结构的选择对于解决不同类型的问题非常重要。

2. 数据结构有哪些常见的分类?数据结构可以分为以下几类:(1) 线性结构:线性结构是一种有序排列的数据结构,其中数据元素之间存在着一对一的关系。

常见的线性结构有数组、链表、栈和队列等。

(2) 非线性结构:非线性结构是一种数据元素之间存在多对多关系的结构,常见的非线性结构有树和图等。

(3) 逻辑结构:逻辑结构是指数据元素之间的逻辑关系,主要包括集合结构、线性结构、树形结构和图形结构等。

(4) 物理结构:物理结构是指数据的逻辑结构在计算机存储中的表示方式,主要包括顺序存储结构和链式存储结构等。

3. 什么是算法?算法是解决特定问题的一系列步骤或操作的有限序列。

一个算法通常包括输入、输出、基本操作、控制结构和定义算法执行的约定等。

4. 数据结构和算法之间的关系是什么?数据结构是算法的基础,而算法又依赖于数据结构。

只有选择合适的数据结构,才能实现高效的算法。

同时,算法的设计也会对数据结构的选择产生影响。

5. 请解释什么是时间复杂度和空间复杂度?时间复杂度是衡量算法执行时间消耗的度量,表示算法的运行时间与问题规模之间的关系。

通常用大O符号来表示时间复杂度,如O(n)、O(nlogn)等。

空间复杂度是衡量算法执行所需存储空间的度量,表示算法所需的额外空间与问题规模之间的关系。

同样也使用大O符号来表示,如O(1)、O(n)等。

6. 请简要描述以下数据结构的特点及应用场景:(1) 数组:数组是一种连续存储数据元素的线性结构,具有随机访问性能。

适用于知道元素位置的查找和修改操作。

(2) 链表:链表是一种通过指针连接的数据结构,具有插入、删除元素方便的特点。

适用于频繁插入、删除操作以及不知道具体位置的查找操作。

数据结构第二单元练习题答案

数据结构第二单元练习题答案

数据结构第二单元练习题答案一、选择1.树最适合用来表示( )A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据2.在下述结论中,正确的是( )①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A.①②③B.②③④C.②④D.①④3.以下说法正确的是( )A.任何一棵二叉树中至少有一个结点的度为2B.任何一棵二叉树中每个结点的度都为2C.任何一棵二叉树的度肯定等于2D.任何一棵二叉树的度可以小于24.在下列情况中,可称为二叉树的是( )A.每个结点至多有两棵子树的树B.哈夫曼树C.每个结点至多有两棵子树的有序树D.每个结点只有一棵右子树E.以上答案都不对5.深度为h的满m叉树的第k层有( )个结点(1=<k=<h)A.m k-1B.m k-1C.m h-1D.m h-16.在一棵高度为k的满二叉树中,结点总数为( )A.2k-1B.2kC.2k-1D.⎣log2k⎦+17.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( )个A.4B.5C.6D.78.具有10个叶结点的二叉树中有( )个度为2的结点。

A.8B.9C.10D.ll9.二叉树有n个结点,则其深度为()A.n-1B.nC.(log2n)+`1 D.无法确定该题是二叉树不是完全二叉树由二叉树结点的公式:n=n0+n1+n2=n0+n1+(n0-1)=2n0+n1-1,因为n=1001,所以1002=2n0+n1,在完全二叉树树中,n1只能取0或1,在本题中只能取0,故n=501,因此选E。

10.一个具有1025个结点的二叉树的高h为( )A.11 B.10 C.11至1025之间 D.10至1024之间11.一棵具有 n个结点的完全二叉树的深度是( )A.⎣log2n⎦+1 B.log2n+1 C.⎣log2n⎦ D.log2n-112.将有关二叉树的概念推广到三叉树,则一棵有244个结点的完全三叉树的高度( )A.4B.5C.6D.713.将一棵有100个结点的完全二叉树从根结点这一层开始,每一层上从左到右依次对结点编号,根结点的编号为1,则编号为49的结点的左孩子编号为()A.98B.99C.50D.48利用二叉树的性质514.在完全二叉树中,若一个结点是叶结点,则它没( )A.左子结点B.右子结点C.左子结点和右子结点D.左子结点,右子结点和兄弟结点15.当一棵有n个结点的二叉树按层次从上到下,同层次从左到右将数据存放在一维数组A[l..n]中时,数组中第i个结点的左孩子为( )A.A[2i](2i=<n)B.A[2i+1](2i+1=<n)C.A[i/2]D.无法确定16.在下列存储形式中,( )不是树的存储形式?A.双亲表示法B.孩子链表表示法C.孩子兄弟表示法D.顺序存储表示法17.以下说法错误的是( )A.完全二叉树上结点之间的父子关系可由它们编号之间的关系来表达B.三叉链表,二叉树求双亲运算很容易实现C.在二叉链表上,求左.右孩子等很容易实现D.在二叉链表上,求双亲运算的时间性能很好18.对二叉树从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用()次序的遍历实现编号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2015秋西南大学《数据结构》第二次作业及答案
一、何时选用顺序表、何时选用链表作为线性表的存储结构为宜? 答:在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑: 1.基于空间的考虑。

当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。

2.基于时间的考虑。

若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。

并且,若链表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的单循环链表为宜。

二、为什么在单循环链表中设置尾指针比设置头指针更好? 答:尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便,设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是rear->next->next 和 rear, 查找时间都是O(1)。

若用头指针来表示该链表,则查找终端结点的时间为O(n)。

三、确定下列算法中输出语句的执行次数,并给出算法的时间复杂度。

(1) void combi (int n) { int I,j,k;
for ( I=1; I<=n; I++) for ( j=I+1; j<=n; j++) for ( k=j+1; k<=n; k++) cout<<I,j,k;}
(2) void binary ( int n)
{ while(n){ cout<<n; n=n/2; }}
(1)I取值范围从1~n,j取值范围从I+1~n,k取值范围从j+1~n,情况如下表所示:I值 j值 k值
输出语句的执行次数 1
2 3, 4, … ,n n-2 ……… n-1 n
1 n / / 2
3 4,5,…,n n-3 ……… n-1 n
1 n
/
/………… n-2
n-1 n
1 n / / n-1 n / / n
/
/
/………… n-2
n-1 n
1 n / / n-1 n / / n
/
/
/
所以,输出语句共执行次数为((n-2)+(n-3)+…+1)+((n-3)+(n-4)+…+1)+…+1 = (n-1)(n-2)/2+(n-2)(n-3)/2+…+1
= (((n-1)2+(n-2)2+(n-3)2+…+12)-((n-1)+(n-2)+(n-3)+….+1))/2
=((n-1)n(2n-1)/6-n(n-1)/2)/2
=(n(n-1)(2n-4))/12=n(n-1)(n-2)/6 (2) ceil(log2n);
四、常用的存储表示方法有哪几种? 常用的存储表示方法有四种:顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。

由此得到的存储表示称为顺序存储结构。

链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。

由此得到的存储表示称为链式存储结构。

索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。

散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。

五、分析以下程序段的时间复杂度。

a=0;b=1;①
for(i=2;i〈=n;i++)② {
s=a+b;③ b=a;④ a=S;⑤ } 解:
因为,语句①的频度是2;语句②的频度是n;语句③的频度是n-1;语句④的频度是n-1;语句⑤的频度是n-1;
故,该程序段的时间复杂度T(n)=2+n+3*(n-1)=4n-1=O(n)。

六、对于一个栈,给出输入项A、B、C,如果输入项序列由ABC组成,试给出所有可能的输出序列。

A进 A出 B进 B出 C进 C出 ABC
A进 A出 B进 C进 C出 B出 ACB
A进 B进 B出 A出 C进 C出 BAC
A进 B进 B出 C进 C出 A出 BCA
A进 B进 C进 C出 B出 A出 CBA
不可能产生输出序列CAB
七、已知一个顺序表中的元素按元素值非递减有序排列,编写一个函数删除表中多余的值相同的元素。

解:
本题的算法思想是:由于顺序表中元素已按元素值非递减有序排列,值相同的元素比为相邻的元素,因此依次比较相邻两个元素,若值相等,则删除其中一个,否则继续向后查找,直到最后一个元素。

实现本题功能的函数如下: voiddel ( seqlist*a ) {
int i=0, j;
while ( i<a->length)
if ( a->data[i]!= a->data[i+1])i++; else {
for ( j=i; j<a->length; j++)
a->data[j]=a->data[j+1]; a->length--; } }。

相关文档
最新文档