数据结构(习题一)
- 格式:ppt
- 大小:509.00 KB
- 文档页数:40
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 章绪论课后习题讲解1. 填空⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑与处理。
【解答】数据元素⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。
【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。
⑶从逻辑关系上讲,数据结构主要分为()、()、()与()。
【解答】集合,线性结构,树结构,图结构⑷数据的存储结构主要有()与()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()与()。
【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系⑸算法具有五个特性,分别是()、()、()、()、()。
【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性⑹算法的描述方法通常有()、()、()与()四种,其中,()被称为算法语言。
【解答】自然语言,程序设计语言,流程图,伪代码,伪代码⑺在一般情况下,一个算法的时间复杂度是()的函数。
【解答】问题规模⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。
【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。
2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。
A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。
⑵假设有如下遗产继承规则:丈夫与妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是()。
文档来源为:从网络收集整理.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 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。
数据结构练习题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.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( )。
A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中( )是非线性结构。
A. 队列B. 栈C. 线性表D. 二叉树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.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( )。
A.2k-1 +1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )。
A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。
A.1 B.2 C.3 D.49.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。
数据结构习题集(包含全部答案)数据结构习题集(自编)第一章绪论一、选择题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⼀、单项选择题1.若⽤⼀个⼤⼩为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除⼀个元素,再加⼊两个元素后,rear和front的值分别为多少?( )A. 1和 5B. 2和4C. 4和2D. 5和1⼤⼩为6的数组:下标从0-5;从前⾯出队,从后⾯⼊队front(前⾯)=3rear(后⾯)=0当出队列中删除⼀个元素,也就是出队,即front+1:=4再插⼊两个元素,即rear+2= 2【注】循环队列中,由于⼊队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。
因此,⽆法通过条件front==rear来判别队列是"空"还是"满"。
2.循环队列A[0..m-1]存放其元素值,⽤front和rear分别表⽰队头和队尾,则当前队列中的元素数是( )。
A. (rear-front+m)%mB. rear-front+1C. rear-front-1D. rear-front3.for(i=0;ifor(j=0;jA[i][j]=i*j;上⾯算法的时间复杂度为( )A.O(m2)B.O(n2)C.O(m×n)D.O(m+n)4.设h是指向⾮空带表头结点的循环链表的头指针,p是辅助指针。
执⾏程序段p=h;while (p->next->next!=h)p=p->next;p->next=h;后(其中,p->next为p指向结点的指针域),则( )A. p->next指针指向链尾结点B. h指向链尾结点C. 删除链尾前⾯的结点D. 删除链尾结点5.假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是()A.head= =NULLB.head–>next= =NULLC.head!=NULLD.head–>next= =head6. 设顺序表有19个元素,第⼀个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为( )A.236B.239C.242D.2457. 若⼀棵⼆叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A .9B .11C .15D .不确定8. n 个结点的线索⼆叉树上含有的线索数为()A .2nB .n -lC .n +lD .n9. 设有⼀个栈,按A 、B 、C 、D 的顺序进栈,则可能为出栈序列的是( )A.DCBAB.CDABC.DBACD.DCAB10. 归并排序中,归并的趟数是( )。
第一章绪论一.选择题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. 一个数组元素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.数据结构被形式定义为(D,S),其中D是(B)的有限集合,S是D上的(H)有限集合。
A、算法B、数据元素C、数据操作D、逻辑关系E、操作F、映象G、存储H、关系2.数据结构是一门研究非数值计算的程序设计问题中计算机的(A)以及它们之间的(B)和运算的学科。
(1)A、操作对象B、计算方法C、逻辑存储D、数据映象(2)A、结构B、关系C、运算D、算法3.算法分析的目的是(D),算法分析的二个主要方面是(C)。
A、给出数据结构的合理性B、研究算法中输入输出的关系C、空间复杂性和时间复杂性D、分析算法的效率以求改进E、正确性和简明性F、分析算法的易懂性和文档性4.在数据结构中,从逻辑上可以把数据结构分成(C)。
A、动态和静态结构B、紧凑接和非紧凑结构C、线性与非线性结构D、内部结构和外部结构5.计算机算法指的是(C),它必具备输入、输出和(E)5 个特性。
A、计算方法B、排序方法C、解决问题的有限运算序列D、可行性、可移植性和可扩充性E、可行性、确定性和有穷性6.线性表的顺序存储结构是一种(A)的存储结构,线性表的链式存储结构是一种(B)。
A、随机存取B、顺序存取C、索引存取D、散列存取7.算法的时间复杂度取决于(A)。
A、问题的规模B、待处理数据的初态C、问题的规模和待处理数据的初态8.线性表若采用链表存储结构时,要求内存中可用存储单元的地址(D)。
A、必须是连续的B、部分地址必须是连续的C、一定是不连续的D、连续不连续都可以9.在以下的叙述中,正确的是(B)。
A、线性表的顺序存储结构优于链式存储结构B、二维数组是它的每个数据元素为一个线性表的线性表C、栈的操作方式是先进先出D、队列的操作方式是先进后出10.根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式。
以下解释错误的是 (A )。
A、集合中任何两个结点之间都有逻辑关系但组织形式松散B、线性结构中结点按逻辑关系依次排列形成一条"锁链"C、树形结构具有分支、层次特性,其形态有点像自然界中的树D、图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接11.以下说法正确的是(D )。
数据结构练习题(第一部分)一、单项选择题。
1、从逻辑上可以把数据结构分为( C )两大类。
A、动态结构与静态结构B、顺序结构和链式结构C、线性结构与非线性结构D、简单结构与复合结构2、数据的存储结构包括顺序、链式、散列和( D ) 4种基本类型。
A、向量B、数组C、集合D、索引3、线性表是具有n个( C )的有限序列(n>0)。
A、表元素B、字符C、数据元素D、数据项4、线性表中,( C )只有一个直接前驱和一个直接后继。
A、首元素B、尾元素C、中间元素D、所有的元素5、往顺序栈中压入一个元素时,栈顶指针是( A )。
A、加1B、减1C、不变D、清06、若进栈序列为1,2,3,4,5,进栈的过程中可以退栈,则(C )不可能是一个退栈序列。
A、3421B、2431C、1423D、32147、判定一个循环队列Q(存放元素位置0~MaxQueueSize-1)队满的条件是(C )。
A、Q.front==Q.rearB、Q.front+1==Q.rearC、Q.front==( Q.rear+1)% MaxQueueSizeD、Q.rear==( Q.front+1)% MaxQueueSize8、串是一种特殊的线性表,其特殊性体现在( B )。
A、可以顺序存储B、数据元素是一个字符C、可以链式存储D、数据元素可以是多个字符9、下列关于串的叙述中,正确的是( A )。
A、一个串的字符个数即是该串的长度B、一个串的长度至少是1C、空串是由一个空格字符组成的串D、两个串S1和S2 若长度相同,则这两个串相等10、数组是一个(C )线性表结构。
A、不加限制B、加了限制C、推广了的D、非11、数组与一般线性表的区别主要是( D )。
A、存储方面B、元素类型一致C、逻辑结构方面D、一般不能进行插入、删除运算12、线性表采用链式存储时,其地址( A )。
A、连续与否均可以B、一定是连续的C、部分地址必须是连续的D、必须是连续的13、以下数据结构中,是非线性数据结构的是( A )。
第一章绪论一、填空题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个特性。
数据结构练习题第一部分绪论一、单选题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. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。