数据结构作业习题

合集下载

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

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

一、单选题(每题 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月

数据结构习题(最终)——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-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.数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②的有限集合。

①A.算法B.数据元素C.数据操作D.逻辑结构②A.操作B.映象C.存储D.关系2.算法分析的目的是①,算法分析的两个主要方面是②。

①A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性②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.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。

(1)A. 计算方法 B.排序方法C. 解决问题的有限运算序列D.调度方法(2)A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性9.以下关于数据的逻辑结构的叙述中正确的是()。

A.数据的逻辑结构是数据间关系的描述B.数据的逻辑结构反映了数据在计算机中的存储方式C.数据的逻辑结构分为顺序结构和链式结构D.数据的逻辑结构分为静态结构和动态结构10.算法分析的主要任务是()。

数据结构习题集

数据结构习题集

数据结构习题集数据结构试题一、单项选择1、若某线性表中最常用的操作是在最后一个元素之前插入和删除元素,则采用___________最节省运算时间.A、单链表B、仅有头指针的单循环链表C、仅有尾指针的单循环链表D、双链表2、哈夫曼树的带权路径长度WPL等于___C________.A、除根以外的所有结点的权植之和B、所有结点权值之和C、各叶子结点的带权路径长度之和D、根结点的值3、设输入序列为1,2,3,4,5,借助一个栈不可能得到的输出序列是___________.A、1,2,3,4,5B、1,4,3,2,5C、4,1,3,2,5D、1,3,2,5,44、20个结点的完全二叉树,其高度为___________.A、3B、2C、4D、55、栈和队列都是___________.A、顺序存储的线性结构B、链式存储的线性结构C、限制存储点的线性结构D、限制存储点的非线结构6、已知完全二叉树有30个结点,则整个二叉树有___________个度为1的结点.A、0B、1C、2D、不确定7、对于N个结点的完全无向图,其边数是___________A、NB、N2C、N(N+1)/2D、N(N+1)8、队列的特点是A、先进先出B、先进后出C、后进先出D、不进不出9、连通分量是的极大连通子图。

A、有向图B、树C、无向图D、图10、现有一“遗传”关系:设x是y的父亲,则x可以把它的属性遗传给y。

表示该遗传关系最适合的数据结构为..............................A、向量B、树C、图D、二叉树11、栈和队列都是().A、线性结构B、链式存储的线性结构C、线性结构或非线性结构D、非线性结构12、二叉树第J层有()个结点A、JB、2JC、J+1D、不能确定13、若图G中()是有向的,则称此图为有向图.A、至少有一条边B、每一条边C、有一条边D、有些边14、在二叉树中,若已知先根序遍历和后根序遍历顺序,则()A、能唯一确定一棵二叉树B、不能唯一确定一棵二叉树C、能唯一确定二棵二叉树D、不存在这样的遍历15、冒泡排序是()的排序方法A、稳定B、不稳定C、外部D、选择16、归并排序是()的排序方法A、稳定B、不稳定C、外部D、选择17、对于顺序存储的队列,存储空间大小为n,头指针为F,尾指针为R.若在逻辑上看一个环,则队列中元素的个数为().A、R-FB、n+R-FC、(R-F+1)mod nD、(n+R-F)mod n18、用9个数据构造出的霍夫曼树共有()个结点A、9B、18C、16D、1719、N个结点的顺序查找的平均查找次数为()A、NB、N/2 C(N+1)/2 D、与N无关20、在无向图的邻接链表中,若表结点个数为M,则边数为()A、MB、M+1C、与M无关D、M/221、设输入序列为1,2,3,4,5,6,借助一个栈不可能得到的输出序列是().A、1,2,3,4,5,6B、1,4,3,2,5 ,6C、4,1,3,2,5,6D、1,3,2,5,4 ,622、栈和队列都是().A、散列存储的线性结构B、链式存储的线性结构C、限制存储点的线性结构D、索引存储的非线性结构23、已知完全二叉树有2008个结点,则整个二叉树有()个度为1的结点.A、0B、1C、2D、不确定24、下列排序方法中,最好情况下,时间复杂度最坏的算法是().A、选择排序B、归并排序C、冒泡排序D、直接插入排序25、下列排序方法中,排序所花费时间复杂度最小的算法是___________。

数据结构练习题及参考答案

数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题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. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。

数据结构的试题及答案

数据结构的试题及答案

数据结构的试题及答案一、选择题(每题2分,共10分)1. 在数据结构中,()是数据元素之间的相互关系的集合。

A. 数据B. 结构C. 存储结构D. 逻辑结构答案:D2. 线性表的顺序存储结构中,存储元素的物理位置是()。

A. 连续的B. 离散的C. 任意的D. 无关的答案:A3. 在二叉树的遍历方法中,先访问根节点,然后遍历左子树,最后遍历右子树的遍历方式是()。

A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A4. 哈希表的冲突解决方法中,()是将所有发生冲突的元素存储在同一个链表中。

A. 线性探测B. 链地址法C. 再散列D. 双散列答案:B5. 在图的遍历算法中,深度优先搜索(DFS)算法使用的辅助数据结构是()。

A. 栈B. 队列C. 链表D. 数组答案:A二、填空题(每题2分,共10分)1. 在数据结构中,算法的时间复杂度通常用()表示。

答案:O(n)2. 一个栈的初始状态为空,依次执行了Push(1), Push(2), Pop(), Push(3), Pop()操作后,栈顶元素是()。

答案:13. 在二叉搜索树中,对于任意节点,其左子树中的所有值都()该节点的值。

答案:小于4. 哈希表的装载因子是表中已填入的元素个数与哈希表的()之比。

答案:总容量5. 图的邻接矩阵表示法中,如果两个顶点之间有边相连,则对应的矩阵元素值为()。

答案:1三、简答题(每题5分,共20分)1. 请简述什么是递归,并给出一个递归算法的例子。

答案:递归是一种算法设计技巧,它允许一个函数直接或间接地调用自身。

递归算法的例子是计算阶乘:n! = n * (n-1)!,其中n! = 1当n=0时。

2. 请解释什么是堆排序,并简述其基本步骤。

答案:堆排序是一种基于堆数据结构的比较排序算法。

基本步骤包括构建最大堆,然后重复移除堆顶元素并调整剩余元素以保持最大堆属性。

3. 请描述什么是图的广度优先搜索(BFS)算法,并给出其算法步骤。

《数据结构》作业习题

《数据结构》作业习题
C.紧凑结构和非紧凑结构 D.内部结构和外部结构
-B
名词解释:(武汉大学2002)
数据对象 物理结构 空间复杂度
选择:(2005程序员)
数据结构主要研究数据的( )
A.逻辑结构 B.存储结构
C.逻辑结构和存储结构 D.逻辑结构和存储结构及其运算的实现
-D
选择;(2004程序员)
为了描述n个人之间的同学关系,可用( )结构表示
A.线性表 B.树 C.图 D.队列
-B
选择:(2004软件设计师)
下面的程序段违反了算法的( )原则
void sam()
{ int n=2;
while (!odd(n)) n+=2;
选择:(中科院2000)
设栈的输入序列是1,2,3,4,则( )不可能是其出栈序列
A.1,2,4,3 B.2,1,3,4 C.1,4,3,2 D.4,3,1,2 E.3,2,1,4
-D
简答:(武汉理工2002)
A、B、C三个元素进栈S的次序是A、B、C,利用Push(S,X),Pop(S)表示入栈、出栈操作,写出所有可能的出栈序列和获得每个序列的相应操作,并指明哪个序列不会是出栈序列。
v=concat(s, concat(b, concat(t, concat(b, u))))
试问:s, t, u, v, length(s), index(v,g), index(u,g)各是什么?

s='this sample is'
t=' a good one'
u='one'
v='this sample is a good one'

数据结构作业题

数据结构作业题

数据结构作业题(总15页) -本页仅作为预览文档封面,使用时请删除本页-第一章1、设n为正整数,利用大"O"记号,将下列程序段的执行时间表示为n的函数。

(1) i=1; k=0;while(i<n){ k=k+10*i;i++;}(2) i=0; k=0;do{k=k+10*i; i++;}while(i<n);(3) i=1; j=0;while(i+j<=n){if (i>j) j++;else i++;}(4)x=n; 编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。

当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。

两个栈均从两端向中间增长。

当向第0号栈插入一个新元素时,使top[0]增1得到新的栈顶位置,当向第1号栈插入一个新元素时,使top[1]减1得到新的栈顶位置。

当top[0]+1 == top[1]时或top[0] == top[1]-1时,栈空间满,此时不能再向任一栈加入新的元素。

试定义这种双栈(Double Stack)结构的类型定义,并实现初始化、判栈空、判栈满、插入、删除算法。

0 m-1【提示】类型定义:#define m 100;Typedef int dsType;试利用算符优先法,画出对如下中缀算术表达式求值时运算符栈和操作数栈的变化。

a +b * (c - d) – e# (#表示结束符)第四章设有模式串T1,T2,T1=‘aaab’,T2=‘abcabaa’,目标串s为‘abc aaabbabcabaacbacba’,(1)计算模式串T1的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。

(2)计算模式串T2的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。

数据结构习题(1-5章)

数据结构习题(1-5章)

第一章绪论一、填空题1、数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。

2、数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。

3、数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

4、数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。

5、线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6、在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。

7、在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。

8、在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。

9、数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

10、数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。

11、一个算法的效率可分为时间效率和空间效率。

二、单项选择题(B)1、非线性结构是数据元素之间存在一种:A)一对多关系B)多对多关系C)多对一关系D)一对一关系( C )2、数据结构中,与所使用的计算机无关的是数据的结构;A) 存储B) 物理C) 逻辑D) 物理和存储(C)3、算法分析的目的是:A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进D) 分析算法的易懂性和文档性(A)4、算法分析的两个主要方面是:A) 空间复杂性和时间复杂性B) 正确性和简明性C) 可读性和文档性D) 数据复杂性和程序复杂性( C )5、计算机算法指的是:A) 计算方法B) 排序方法C) 解决问题的有限运算序列D) 调度方法(B)6、计算机算法必须具备输入、输出和等5个特性。

十套数据结构试题及答案

十套数据结构试题及答案

数据构造试卷〔一〕一、单项选择题〔每题 2 分,共20分〕1.栈和队列的共同特点是( a )。

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

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

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

二、填空题〔每空1分,共26分〕1.通常从四个方面评价算法的质量:____时间正确性_____、____占用内存_易读性____、____复杂度__强壮性___和_____准确度_ 高效率___。

数据结构习题(含答案)

数据结构习题(含答案)

一、单选题(每小题3分,共30分)1.在逻辑上可以把数据结构分成。

( ) A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.串是_________。

( ) A.不少于一个字母的序列B.任意个字母的序列C.不少于一个字符的序列D.有限个字符的序列3.在n个元素的顺序表中,时间复杂度是O(1)的操作是______。

( ) A.获得第i个数据元素值B.查找给定值C.在第i个位置上插入数据元素D.删除第i个数据元素4.线性表若采用链式存储结构时,要求内存中可用存储单元的地址________。

( )A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以5.单链表中,在p结点之后插入q结点,操作的语句为。

( ) A.q->next=p->next,p->next=q B.p=q->next,q->next=pC.p->next=q->next,q->next=p D.q=p->next,p->next=q6.栈中数据元素的插入和删除操作是在表的进行的。

( )A.一端B.两端C.中间D.任意位置7.队列的特点是。

( )A.先进先出B.后进先出C.先进后出D.随机存取8.树中结点A有3个兄弟,结点B是A的双亲,则B的度是。

( )A.1B.2C.3D.49.下面关于图的存储结构的叙述中正确的是____________。

( )A.用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关B.用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关C.用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关D.用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关10.对于不带权的有向图,其邻接矩阵的每一列包含的“1”的个数为。

( )A.图中每个顶点的入度B.图中每个顶点的出度C.图中弧的条数D.图中连通分量的数目二、判断题(每小题1分,共10分)对于正确的说法,请在题前的括号内打√,错误的说法则打×。

(完整版)数据结构练习题及参考答案

(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题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. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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
第 九 章 查找
相关文档
最新文档