数据结构练习1
- 格式:pdf
- 大小:90.12 KB
- 文档页数:5
1.设n为正整数,利用大"O"记号,将下列程序段的执行时间表示为n的函数。
(1) i=1; k=0;while(i<n){ k=k+10*i;i++;}(2) i=1; j=0;while(i+j<=n){if (i>j) j++;else i++;}(3)x=n; // n>1while (x>=(y+1)*(y+1))y++;第二章线性表2.1下述算法的功能是什么?LinkList Demo(LinkList L){ // L是无头结点单链表ListNode *Q,*P;if(L&&L->next){Q=L;L=L->next;P=L;while (P->next) P=P->next;P->next=Q; Q->next=NULL;}return L;}// Demo答:该算法的功能是:将开始结点摘下链接到终端结点之后成为新的终端结点,而原来的第二个结点成为新的开始结点,返回新链表的头指针。
2.9设顺序表L是一个递增有序表,试写一算法,将x插入L中,并使L仍是一个有序表。
答:因已知顺序表L是递增有序表,所以只要从顺序表终端结点(设为i位置元素)开始向前寻找到第一个小于或等于x的元素位置i后插入该位置即可。
在寻找过程中,由于大于x的元素都应放在x之后,所以可边寻找,边后移元素,当找到第一个小于或等于x的元素位置i时,该位置也空出来了。
算法如下://顺序表存储结构如题2.7void InsertIncreaseList( Seqlist *L , Datatype x ){int i;if ( L->length>=ListSize)Error(“overflow");for ( i=L -> length ; i>0 && L->data[ i-1 ] > x ; i--)L->data[ i ]=L->data[ i ] ; //比较并移动元素L->data[ i ] =x;L -> length++;}2.14已知单链表L是一个递增有序表,试写一高效算法,删除表中值大于min且小于max的结点(若表中有这样的结点),同时释放被删结点的空间,这里min和max是两个给定的参数。
第八章查找一、判断题1.用二分查找法对一个顺序表进行查找,这个顺序表可以是按各键值排好序的,也可以是没有按键值排好序的。
()2.哈希表的查找不用进行关键字的比较。
()3.哈希表的定义函数H(key)=key%p(p<=m)这种方法是直接定址法。
()4.装填因子α的值越大,就越不容易发生冲突。
( )5.选择hash函数的标准为:随机性好、均匀性好和尽量避免冲突。
( )参考答案:1、×2、×3、×4、×5、√二、填空题1.顺序查找法的平均查找长度为__________,二分查找法的平均查找长度为________,分块查找法(以顺序查找确定块)的平均查找长度为__________,分块查找法(以二分查找确定块〉的平均查找长度为_________,哈希表查找法采用链接法处理冲突时的平均查找长度为_________。
(n+1)/2;((n+1)*log2(n+1))/n-1;(s2+2s+n)/2s;log2(n/s+1)+s/2;1+α2.在各种查找方法中,平均查找长度与结点个数n无关的查法方法是_________哈希表查找3.二分查找的存储结构仅限于_________,且是__________。
顺序;有序的4.在分块查找方法中,首先查找__________,然后再查找相应的___________。
索引;块5.长度为255的表,采用分块查找法,每块的最佳长度是____________。
156.在散列函数H(key)=key%p中,p应取_______________。
小于表长的最大素数7.假设在有序线性表A[1..20]上进行二分查找,则比较一次查找成功的结点数为_________,则比较二次查找成功的结点数为__________,则比较三次查找成功的结点数为_________,则比较四次查找成功的结点数为________,则比较五次查找成功的结点数为_________,平均查找长度为_________。
第一章绪论一、选择题1.一个算法应该是()。
A.程序B问题求解步骤的描述C 要满足5个基本特性D.A和c2 计算机算法必须具备输入、输出、()等5个特性。
A 可行性、可移植性和可扩展性B 可行性、确定性和有穷性C 确定性、有穷性和稳定性D 易读性、安全性和稳定性3 在数据结构中,从逻辑上可以把数据结构分为()A 动态结构和静态结构B 紧凑结构和非紧凑结构C 内容结构和外部结构D 线性结构和非线性结构4 下面程序段的时间复杂性的量级为()for (i=1;i<=n;i++)for(j=1;j<=i;j++)for(k=1;k<=j;k++)x=x+1;A O(1)B O(n)C O(n2)D O(n3)5 在数据结构中,与所使用的计算机无关的是数据的()结构A 逻辑B 存储C 逻辑和存储D 物理6 数据结构在计算机中的表示是指()A 数据的逻辑结构B 数据结构C 数据的存储结构D 数据元素之间的关系7 下面()的时间复杂性最好,即执行时间最短。
A O(n)B O(logn)C O(nlogn)D O(n2)8 下面程序段的时间复杂性的量级为()。
int fun(int n){i=1,s=1;while(s<n)s+=++i;return i;}A O(n/2)B O(logn)C O(n)D O(n1/2)9 下面程序段的时间复杂性的量级为()。
for(int i=0;i<m;i++)for(int j=0;j<n;j++)A[i][j]=i*j;A O(m3)B O(n2)C O(m*n)D O(m+n)10 执行下面程序段时,S 语句的执行次数为()。
for(int i=1;i<n-1;i++)for(int j=i+1;j<=n;j++)S;A n(n-1)/2B n2/2C n(n+1)/2D n11、研究数据结构就是研究( )。
A、数据的逻辑结构B、数据的存储结构C、数据的逻辑结构和存储结构D、数据的逻辑结构、存储结构及其数据在运算上的实现12、以下属于逻辑结构的是( )。
数据结构练习试卷1(题后含答案及解析)题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1.数据结构主要研究数据的______。
A.逻辑结构B.存储结构C.逻辑结构和存储结构D.逻辑结构和存储结构及其运算的实现正确答案:D解析:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构一般包括三方面的内容:①数据之间的逻辑关系。
从逻辑关系上描述数据,与数据的存储无关。
②数据的存储结构。
存储结构分为顺序结构和链式结构,是逻辑结构在计算机存储器中的表示,它包括数据元素的表示和关系的表示。
③数据的运算。
也就是在数据上所施加的一系列操作。
只考虑操作的功能是怎样的,暂不考虑如何实现。
综上所述,本题的正确答案为选项D。
知识模块:数据结构2.在数据结构中,结点(数据元素)及结点间的相互关系组成数据的逻辑结构。
按逻辑结构的不同,数据结构通常可分为______两类。
A.线性结构和非线性结构B.紧凑结构和稀疏结构C.动态结构和静态结构D.内部结构和外部结构正确答案:A解析:在数据结构中,结点(数据元素)及结点间的相互关系组成数据的逻辑结构。
按逻辑结构的不同,数据结构通常可分为线性结构和非线性结构两类。
本题正确答案为选项A。
知识模块:数据结构3.下面叙述不正确的是______。
A.算法的执行效率与数据的存储结构有关B.算法的空间复杂度是指执行这个算法所需要的内存空间C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.算法的时间复杂度是指执行这个算法所需要的时间正确答案:D解析:算法的时间复杂度是指执行算法所需要的计算工作量,故D选项不正确。
知识模块:数据结构4.数据的存储结构是指______。
A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据正确答案:B解析:数据的存储结构是数据元素在计算机存储器内的表示。
文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.第1章 绪论1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。
解:数据是对客观事物的符号表示。
在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
存储结构是数据结构在计算机中的表示。
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
是对一般数据类型的扩展。
1.2 填空题:1.常见的数据结构有__结构,_____结构,____结构等三种。
2.常见的存储结构有_________结构,______结构等两种。
3.数据的基本单位是____,它在计算机中是作为一个整体来处理的。
4.数据结构中的结构是指数据间的逻辑关系,常见的结构可分为两大类,______和_____。
5.《数据结构》课程讨论的主要内容是数据的逻辑结构、存储结构和________。
1.2设有数据结构(D,R),其中{}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r =试按图论中图的画法惯例画出其逻辑结构图。
解:1.3设有以下三个函数:()10002124++=n n n f ,()3450015n n n g+=,()n n n n h log 5005.3+=请判断以下断言正确与否:(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)解:(1)对 (2)错 (3)错 (4)对 (5)错第二章序列2.1 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。
一、填空题:(每小题2分,共10分)1. 设有数据结构(D,R),其中D 是数据元素的有限集,R 是的有限集。
2. 深度为k 的二叉树其结点数至多有个。
3. 栈是一种特殊的线性表,它允许在表的一端进行操作。
4. 通常象交通、道路问题的数学模型是一种称为的数据结构。
5. 哈希表是一种查找表,可以根据哈希函数直接获得。
二、单项选择题:(每小题2分,共10分)对于下列各题,在备选答案中选出一个正确的,并将其编号填在“”位置上。
1. 若线性表最常用的操作是存取第i 个元素及其前驱元素的值,则采用存储方式最节省运算时间。
A. 单链表B. 双链表C. 单循环链表D. 顺序表2. 下列排序算法中,算法在进行一趟相应的排序处理结束后不一定能选出一个元素放到其最终位置上。
A. 直选择排序B. 冒泡排序C. 归并排序D. 堆排序3. 队列的操作原则是。
A. 先进后出B. 先进先出C. 只能进行插入D. 只能进行删除4. 在具有n 个结点的二叉链表中,非空的链域个数为。
A. n-1B. nC. n+1D. 不确定5. 对具有n 个元素的有序查找表采用折半查找算法查找一个键值,其最坏比较次数的数量级为。
A. O(log2n)B. O(n)C. O(nlog2n)D. O(n2)三、判断题:(每小题2分,共10分)判断下列各题是否正确,若正确,在题后的括号内填“T”,否则填“F”。
1. 在栈为空的情况下不能作出栈处理,否则,将产生下溢出。
()2. 如果有向图G=(V, E) 的拓扑序列唯一,则图中必定仅有一个顶点的入度为0、一个顶点的出度为0。
()3. 在大根堆中,必定满足每个结点的键值大于其左右子树中所有结点的键值。
()4. 在采用线性探测法处理冲突的散列表中所有同义词在表中相邻。
()5. 在索引顺序表中,对索引表既可采用顺序查找,也可采用二分查找。
()四、解答下列各题:(每题10分,共40分)1. 已知线性表L 采用带头结点的的单向循环链表表示,试给出它的存储结构类型描述及相应的示意图。
数据结构练习题1、在数据结构中,从逻辑上可以把数据结构分成A、动态结构和静态结构B、紧凑结构和非紧凑结构B、线性结构和非线性结构D、内部结构和外部结构2、线性表的顺序存储结构是一种_____的结构,线性表的链式存储结构是一种____的存储结构A、随机存取B、顺序存取C、索引存储D、散列存取3、线性表若采用链式存储结构时,要求内存中可用存储单元的地址____A、必须是连续的B、部分地址必须是连续的B、一定是不连续的D、连续或不连续都可以4、在下列叙述中,正确的是____A、线性表的顺序存储结构优于链表存储结构B、二维数组是其数据元素为线性表的线性表C、栈的操作方式是先进先出D、队列的操作方式是先进后出5、一个顺序表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是___A、110B、108C、100D、1206、一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是____A、edcbaB、decbaC、dceabD、abcde7、一个栈的入队序列是1,2,3,4,则队列的输出序列是____A、4,3,2,1B、1,2,3,4C、1,4,3,2D、3,2,4,18、判定一个栈ST空的(最多元素为m0)为空的条件是_____A、ST->top!=0B、ST->top= =0C、S T->top!=m0D、ST->top= =m09、判定一个栈(最多元素为m0)为满的条件是_____A、ST->top!=0B、ST->top= =0D、ST->top!=m0 D、ST->top= =m010、判定一个队列QU(最多元素为m0)为空的条件是_____A、QU->rear-QU->front= =m0B、Q U->rear-QU->front-1= =m0C、Q U->front= =QU->rearD、QU->front= =QU->rear+111、判定一个队列QU(最多元素为m0)为空的条件是_____A、QU->rear-QU->front= =m0B、QU->rear-QU->front-1= =m0C、QU->front= =QU->rearD、QU->front= =QU->rear+112、判定一个循环队列QU(最多元素为m0)为空的条件是_____A、QU->rear-QU->front= =m0B、QU->rear-QU->front-1= =m0C、QU->front= =(QU->rear+1)%m0D、QU->front! =(QU->rear+1)%m013、判定一个循环队列QU(最多元素为m0)为满的条件是_____A 、QU->rear -QU->front= =m0B 、QU->rear -QU->front -1= =m0C 、QU->front= =(QU->rear+1)%m0D 、QU->front! =(QU->rear+1)%m014、循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front 和rear ,则当前队列中的元素个数是_____A 、(rear -front+m )%mB 、rear -front+1C 、rear -front-1E 、 rear -front15、如下图所示的4棵二叉树中,____不是完全二叉树。
数据结构练习题第一部分绪论一、单选题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.一个数组元素a[i]与( A )的表示等价。
A .*(a+i ) B .a+i C .*a+i D .&a+ia 是存储的是数组首地址,*a 指向的就是数组第一个元素a[0],所以*(a+i )的地址和a[i]的地址一样。
数组和指针在一定程度上本质是一样的。
2.当利用大小为N 的数组顺序存储一个栈时,假定用top==N 表示栈空,则退栈时,修改top 指针的语句是( A )。
A .top++;B .top=0;C .top--;D .top=N; 3.队列的删除操作是在( A )进行。
A .队首B .队尾C .队前D .队后队列删除元素是在队首进行,队列是进先先出,相对来说,队首元素是最先进入队列的,因此出队应该是在队首进行。
队列其实就和我们平时排队一样的4.二叉树上叶子结点数等于( C )。
A .分支结点数加1B .单分支结点数加1C .双分支结点数加1D .双分支结点数减15.哈希冲突是指( D )。
A .两个元素具有相同的序号B .两个元素的键值不同,而其他属性相同C .数据元素太多D .不同键值的元素对应于相同的存储地址6.由权值分别为3,6,7,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( A )。
A .51B .23C .53D .742310 135 56 72 3(2+3)*3+5*2+(6+7)*2=517.某程序的时间复杂度为)log log 1003(22n n n n +⨯+,其数量级表示为( B )。
A .O(n)B .)log (2n n OC .O(100)D .)(log 2n O8.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。
A .O(n)B .O(1)C .)(log 2n OD .)(2n O9.在线性表的散列存储中,若用m 表示散列表的长度,n 表示待散列存储的元素的个数,则装填因子α等于( A )。
数据结构练习题习题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. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。