数据结构作业习题
数据结构试题及答案(十套)

一、单选题(每题 2 分,共20分)1.对一个算法的评价,不包括如下(B )方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35.AOV网是一种()。
A.有向图B.无向图C.无向无环图D.有向无环图6.采用开放定址法处理散列表的冲突时,其平均查找长度()。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。
A.值B.函数C.指针D.引用8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。
A.行号B.列号C.元素值D.非零元素个数9.快速排序在最坏情况下的时间复杂度为()。
A.O(log2n) B.O(nlog2n)C.0(n) D.0(n2)10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、运算题(每题 6 分,共24分)1.数据结构是指数据及其相互之间的______________。
当结点之间存在M对N (M:N)的联系时,称这种结构为_____________________。
数据结构习题(有答案)(精选文档)

数据结构习题(有答案) 第1章绪1。
1 有下列几种二元组表示的数据结构,试画出它们分别对应的图形表示,并指出它们分别属于何种结构。
(1) A= ( D,R ),其中,D = { a1,a2,a3,a4}, R={ }(2) B= ( D,R ),其中,D = { a,b,c,d,e}, R={ (a,b),(b,c),(c,d),(d,e)}(3) C= ( D,R),其中,D = { a,b,c,d,e,f,g}, R={(d,b),(d,g),(1)集合(2) 线性表a b c d e(3)树fgabcde(4)图1453621 / 48·····谢阅。
(b,a),(b,c),(g,e),(e,f)}(4) K= ( D,R ),其中,D= { 1,2,3,4,5,6}, R={〈1,2>,〈2,3>,〈2,4>,<3,4>,<3,5>,<3,6>,<4,5〉,〈4,6〉}1.2设n为正整数,求下列各程序段中的下划线语句的执行次数。
(1) i=1;k=0while(i 〈=n-1){k+=10*i ;i++;(2) for (int i=1;i<=n; i++)for (int j=1; j〈=n; j++){c[i][j]=0;解:(1) n-1(2) ∑∑∑====ninjnkn111312 / 48·····谢阅。
}ﻩ for(intk=1; k〈=n; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j]}(3) x=0;y=0;for (int i=1; i<=n; i++)for (int j=1; j<=i; j++)for (intk=1; k〈=j; k ++)(3)62)1)(nn(n21)(216)12)(1(2121212)1(1112111111++=+•+++•=+=+==∑∑∑∑∑∑∑∑========nnnnniii ijnininiijjkniijni3 / 48·····谢阅。
数据结构习题(最终)——13年11月

《数据结构》作业习题班级:学号:姓名:习题一绪论1、数据结构主要研究的三个内容为、以及定义在该结构上的。
2、数据结构从逻辑结构上可分为线性结构与非线性结构,其中树、图属于。
3、数据结构被形式地定义为(D,R),其中D是的有限集,R是D上的有限集。
4、程序作用是利用swap函数,实现main函数中变量a与b的值的交换。
填写空缺使代码完整。
void swap( ) { int temp;;;; } int main( ){ int a=7,b=11;printf("a=%d,b=%d\n",a,b);swap( );printf("a=%d,b=%d\n",a,b); }5、函数triangleArea的作用是:根据三角形的三条边a、b、c,求三角形的面积。
求三角形面积的公式为)cs)(bs)(as(s---,其中s=(a+b+c)/2。
要求函数返回值类型定义为状态类型(Status 类型),当给定的三条边不能构成三角形时,函数返回ERROR;否则函数返回OK,并利用引用类型参数返回三角形的面积。
填写空缺使代码完整。
triangleArea( double a, double b, double c, area) { double s;if(a+b<=c||a+c<=b||b+c<=a) return ;else{ s=(a+b+c)/2;=sqrt(s*(s-a)*(s-b)*(s-c));return ;}6、设有定义如下:typedef struct stuInfo{int num;char name[20];char sex;struct stuInfo *next;} stuType;(1)利用指针变量stus,实现一个能容纳40个stuType类型元素动态数组。
实现该功能正确的代码为:stuType *stus;stus=( )malloc( );(2)从内存中分配两个stuType类型的结点空间,其指针分别为p、q。
(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
数据结构练习题及参考答案

《数据结构》练习题一、解答题(共50分)1、(8分)假设用于通讯的电文字符集及其出现的频率如下表所示。
请为这8个字符设计哈夫曼编码,并画出其哈夫曼树,计算WPL 。
2. (8分)若一棵二叉树中序遍历和后序遍历序列分别为:DBEHGAFIC 和DHGEBIFCA 。
试画出这棵二叉树,并写出其先序遍历和层序遍历序列。
3.(16分)以下无向网络以邻接表为存储结构(假设邻接表的顶点表按字母a 、b 、c 、d 、e 、f 、g 、h 的顺序依次存储,邻接表的边表结点按顶点的下标由小到大链接)。
请画出其邻接表,并写出从顶点f 出发,分别进行深度和广度优先遍历的序列,写出用Prime 方法从顶点c开始产生最小生成树的边的序列。
4.(8分)已知键值序列为(44,39,67,25, 52,59,43,84,54,58,15,26,12,73,92,69),取填充因子α=0.8,采用线性探查法处理冲突,试构造散列表。
⒌(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81),用希尔排序方法进行排序,d1=5,d2=3,d3=1,则第二趟的排序结果是( )。
⒍(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81) ,用堆(大根堆)排序方法进行排序,第一趟的排序结果是( )。
二、完善程序(共20分,每空2分)1.假设一组递减有序的原始数据存储在数组r 中,存放元素的下标下限为low,下标上字符 出现频率 a 0.05 b 0.03 c 0.24 d 0.16 e 0.08 f 0.24 g 0.18 h0.02限为high,以下是在数组中查找数值为k的折半查找算法。
请填空完善程序。
int BinSearch(int r[ ], int low,int high,int k){ int l,h,m;l= low; h= high;while ( ⑴){m= ⑵;if (k < r[m]) ⑶;else if (k > r[m]) ⑷;else return m;}return 0;}2. 以下程序功能是将数组r中,从下标first到end之间的元素进行快速排序的分区。
数据结构习题集(包含全部答案)

数据结构习题集(包含全部答案)数据结构习题集(自编)第一章绪论一、选择题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、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
数据结构练习题(含答案)

数据结构练习题习题1 绪论1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。
① A.操作对象B.计算方法C.逻辑结构D.数据映象② A.存储结构B.关系C.运算D.算法2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。
① A.算法B.数据元素C.数据操作D.数据对象② A.操作B.映象C.存储D.关系3. 在数据结构中,从逻辑上可以把数据结构分成。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4. 算法分析的目的是①,算法分析的两个主要方面是②。
① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。
① A. 计算方法 B. 排序方法C. 解决问题的有限运算序列D. 调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性1.2 填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。
2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。
3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。
4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。
5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。
数据结构习题(1-2-3章)

第一章绪论一.选择题1.下面关于算法说法正确的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C.算法的可行性是指指令不能有二义性D.以上几个都是错误的2.以下哪一个术语与数据的存储结构无关?()A.栈 B.哈希表 C.线索树 D.循环队列3.算法复杂度通常是表达算法在最坏情况下所需要的计算量,O(1)的含义是()A.算法执行一步就完成B.算法执行1秒钟就完成C.算法执行常数步就完成 D.算法执行可变步数就完成4.数据结构研究的内容是()。
A.数据的逻辑结构 B.数据的存储结构C.建立在相应逻辑结构和存储结构上的算法 D.包括以上三个方面5.一个正确的算法应该具有 5 个特性,除输入、输出特性外,另外 3 个特性是()。
A.确定性、可行性、有穷性 B.易读性、确定性、有效性C.有穷性、稳定性、确定性 D.可行性、易读性、有穷性6.以下关于数据的逻辑结构的叙述中正确的是()。
A.数据的逻辑结构是数据间关系的描述B.数据的逻辑结构反映了数据在计算机中的存储方式C.数据的逻辑结构分为顺序结构和链式结构D.数据的逻辑结构分为静态结构和动态结构7.下列时间复杂度中最坏的是()A.O(1) B.O(n) C.O(log2n) D.O(n2)8.算法的时间复杂度取决于()A.待处理数据的初态 B.问题的规模C.程序本身所占的空间 D.问题的规模和待处理数据的初态二.综合应用题1.有下列运行时间函数:(1)f1(n)=1000; (2)f2(n)=n2+1000n; (3)f3(n)=3n3+100n2+n+1;分别写出相应的大O表示的运算时间。
2.下面函数mergesort执行的时间复杂度为多少?假设函数调用为mergesort(1,n),merge 函数时间复杂度为 O(n)void mergesort(int i,int j){int m;if(i!=j){mergesort(i,m);mergesort(m+1,j);merge(i,j,m);//本函数时间复杂度为 O(n)}}第二章线性表一.选择题1.下述哪一条是顺序存储结构的优点?()A.存储密度大 B.插入运算方便C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 六 章 树
作 业 1. 一颗深度为h的满k叉树有如下性质:第h层上都是 叶结点,其余各层上每个结点都有k个非空子树, 如果按层次从1开始对全部结点编号。问: (1)各层结点的数目是多少? (2)编号为m的结点的父结点(若存在)的编号 为多少? (3)编号为m的结点的第i个孩子结点(若存在) 的编号是多少? (4)编号为m的结点有右兄弟的条件是什么?右 兄弟的编号是多少? 2. 如果一棵树有n1个度为1的结点,n2个度为2的结 点,……nm个度为m的结点,则它有多少个叶结 点?
A B
2
F
3
4
C
5
G
6
7
J
8 9 10 11 12 13 14
D E H I K
(1) 画出此颗二叉树。 (2)将此树转换为森林。 (3) 写出该森林的先根遍历和后根遍历序列。 6. 设有一段电文共100个字母,只可能出现{C,A,T, S,I}五个字母,他们出现的频度对应为 {35,15,25,7,18},试设计哈夫曼编码。
作
业
1、已知一组关键字为 {25,18,46,2,53,39,32,4,74,67,60,11}。 (1)试求在顺序表上顺序查找时,在等概率的情况下 查找成功的平均查找长度。 (2)若对表中元素先进行排序构成有序表,求在等概 率的情况下对此有序表进行折半查找时查找成功的 平均查找长度。 (3)按表中元素的顺序依次插入一颗初始为空的二叉 排序树,画出插入完成后的二叉排序树,并求在等 概率的情况下查找成功的平均查找长度。 (4)按表中元素的顺序构造一颗平衡二叉树,画出其 构造过程,并求其在等概率的情况下查找成功的平 均查找长度。
底1
top[0]
top[1]
底2
作 业 3. (1)利用栈将中缀表达式3*(68-24) /2+4转换为后缀表达式,要求写出在每 一步转换过程中栈的状态变化; (2)利用栈对(1)中转换后的后缀表达 式求值,要求写出每一步求值过程中栈 的状态变化。
第 四 章 串ຫໍສະໝຸດ 作 业 2. 利用串的基本运算写出对串求逆的递 归算法。
第 五 章 数组和广义表
作 业 1.设有上三角矩阵(aij)n×n ,将其上三角 元素逐行存于数组B(0:m-1)中,使得 B[k]= aij,且k= f1(i)+ f2(j)+c。试推导函 数 f1、f2 和常数项 c,其中1≤i,j≤n。
作
业
1.求下列广义表运算的结果: 1)Head[((a,b),(c,d))] 2)Tail[((a,b),(c,d))] 3)Head[Tail[((a,b),(c,d))]] 4)Tail[Head[((a,b),(c,d))]] 5)Head[Tail[Head [((a,b),(c,d))]]] 6)Tail[Head[Tail [((a,b),(c,d))]]]
2
不同时间复杂度性能的比较:
O(1)<O(logn)<O(n)<O(nlogn)<O(n2) <O(n3)<O(2n)<O(n!)<O(nn)
3
第 二 章 线性表
2、设顺序表L中的数据元素递增有序, 删除表中所有值大于k1且小于k2的元素 (k1≤k2)。
5
算法思想: 第一种:1)逐个检查数据元素,找到第 一个满足条件的a[i]; 2)删除,移动元素; 3)找下一个满足条件的元素,,如果有 ,转2)。 第二种:1)逐个检查数据元素,找到第 一个满足条件的a[i]; 2)求出满足条件的数据元素个数j; 3)删除后,所有元素一次移动到位。
作 业 2、设给定的哈希表地址空间为HT[0..10],关键 字的集合为key={24,38,56,70,23,53,43,64,75}, 哈希函数使用“除留余数法”,冲突解决分 别采用“线性探测再散列”和“链地址”法, 试画出两种情况下的哈希表,并求出在等概 率查找时的查找成功的查找长度和查找不成 功的平均查找长度。
#define ListSize 100 typedef struct { ElemType elem[ListSize]; int length; }SqList;
void sq_dele(Sqlist *L,ElemType k1,ElemType k2) { i=0; while(i<L->length) if((L->elem[i] >=k1)&& (L->elem[i] <=k2)) break; else i++; if(i<L->length) { j=1; while((i+j<L->length)&&(L->elem[i+j]<=k2)) j++; for(k=i+j;k<L->length;k++) L->elem[k-j]=L->elem[k]; L->length=L->length-j; } }
3. 求模式串p=‘cbcaacbcbc’的next数组 值和nextval数组值。
2、递归思想 (1)求出从该串第2个字符开始到第n个 字符为止的子串(串长为n-1)的逆串; 将第一个字符连接到该逆串之后即为所 求。 (2)串长为1的字符串的逆串为其本身.
String reverse(string s) { if(length(s)>1) { s1=reverse(Substr(s,2,length(s))); s2=Concat(s1,Substr(s,1,1)); } else Assign(s2,s); return(s2); }
作
业
2.利用 Head 和 Tail 运算将下列广义表 中的原子 c 取出来: 1)L1=(a,b, c,d) 2)L2=((a,b),(c,d)) 3)L3=(((a),(b), (c),(d))) 4)L4=(a,(b),((c)),(((d)))) 5)L5=((((a))),((b)),(c),d) 6)L6=((((a),b),c),d) 7)L7=(a,(b,(c,(d)))) 8)L8=(a,(b,(c),d))
数据结构
习 题 讲 解
1
2、求下列程序段的时间复杂度,写出各 语句的频度。 (1)temp=x; //语句1 x=y; //语句2 y=temp; //语句3 (2)sum=0; //语句1 for(i=0;i<n;i++) //语句2 for(j=0;j<n;j++) //语句3 sum=sum+i*j; //语句4
第 三 章 栈和队列
作 业 1. 有A、B、C、D四辆列车顺序进入栈 式结构的站台,问这四辆列车开出站台 的序列有多少种,并写出具体序列。 2. 设两个栈共享空间v[0..m-1],两栈的栈 底分别设在向量的两端,且每个元素 占用一个分量。试设计这两个栈的插 入和删除算法。
0 1 2 v[0..m-1] m-1
作
业
3. 二叉树用二叉链表存储,试设计算法,计算给定二 叉树所有结点数。
4. 已知二叉树中序遍历和后序遍历的序列分别为: 中序序列:CBADEFIJHK; 后序序列:CADBJIKHFE (1)画出此二叉树。 (2)画出此二叉树的先序线索化树。
作 业 5. 已知一颗二叉树的顺序存储结构如下图所示: 1
复习大纲
第六章:二叉树(定义、性质、存储结 构),遍历,树,森林,赫夫曼树,编 码,算法设计 第七章:图的定义术语,存储结构,遍 历,最小生成树,拓扑排序,关键路径 ,最短路径 第九章:顺序查找、折半查找、二叉排 序树、哈希表 第十章:各种排序方法
复习大纲
第一章:基本概念术语,时间复杂度的计 算,大O的含义 第二章:线性结构的特点,顺序存储方式 ,链式存储方式,线性表的操作(不同存 储方式下操作的实现不同) 第三章:栈和队列的特点,表达式求值, 循环队列,递归 第四章:串的特点,模式匹配 第五章:矩阵的压缩存储,广义表的操作
第 七 章 图
作 业 1. 如图所示为一有向图,试求: (1)各顶点的入度和出度。 (2)强连通分量。 (3)邻接矩阵。 (4)邻接表和逆邻接表。
V4
50 20 20 40
V5
V3
20 10
V2
10
V0
10 30
40
V1
20
作 业 2. 《数据结构题集》P47 7.7 7.10 7.11
第 九 章 查找