《数据结构》习题集
数据结构习题集和答案
第1章绪论1、填空题1.常见的数据结构有集合,_线性__结构,__树形___结构,__图形__结构等四种。
2.常见的存储结构有__顺序存储_______结构,__链式存储____结构等两种。
3.数据的基本单位是_数据元素___,它在计算机中是作为一个整体来处理的。
4.数据结构中的结构是指数据间的逻辑关系,常见的结构可分为两大类,__线性结构____和__非线性结构___。
2、选择题1. 算法的计算量的大小称为计算的(B)。
A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C)A.问题的规模 B. 待处理数据的初态 C. A和B D. 以上都不对3.计算机算法指的是(1)(c),它必须具备(2)(B)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4. 下面关于算法说法错误的是(D)A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的3、应用题1、给出以下算法的时间复杂度.void fun(int n){int i=1,k=100;while(i<n){k=k+1;i=i+2;}}时间复杂度为____O(n)_____。
2、给出以下算法的时间复杂度.void fun2(int n){int i=1,k=100;while(i<n){i=i*10;k=k+1;}}时间复杂度为____O(log n)___________。
第2章线性表1、填空题1. 线性表按照存储结构不同主要有两种实现方式,一种是__顺序_表,另一种是___链___表。
2.顺序表采用__随机___访问机制对数据元素进行访问。
3.若在单链表结点p的后面插入一个新的结点s,则其操作序列为:①____s->next=p->next_____________;②____p->next=s___________________;4.在单向链表中,若要删除某个结点p,一般要找到__p的前趋__结点,才能实现该操作。
数据结构练习题及答案
数据结构练习题(一)一、单选题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.1数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的关系和运算等的学科。
1.2 算法分析的目的是分析算法的效率以求该进,算法分析的两个主要方面是空间复杂度和时间复杂度。
1.3 计算机算法指的是解决问题的有限运算序列,它必须具备输入、输出和确定性、有穷性和可行性等5个重要特性。
第二章线性表2.32 下面关于线性表的叙述中,错误的是(B)A. 线性表采用顺序存储必须占用一片连续的存储单元B. 线性表采用顺序存储便于进行插入和删除操作C. 线性表采用链式存储不必占用一片连续的存储单元D. 线性表采用链式存储便于进行插入和删除操作第三章栈与队列一、选择题3.1 栈的特点是先进后出,队列的特点是先进先出。
3.4 判定一个栈ST(最多元素MaxSize)为空的条件是ST->top==-1。
3.8 一个队列的入队序列是1,2,3,4,则出队列的输出序列是1,2,3,4。
3.16一个队列的入队序列是1,2,3,4,则队列的输出序列是1,2,3,4。
3.18 若进栈序列为 1,2,3,4,,进栈过程中可以出栈,则以下不可能的出栈序列是3,1,4,23.1 栈和队列的区别仅在于____。
3.2 通常元素进栈的操作是____。
3.3通常元素退栈的操作是____。
3.4一个栈的输入序列是12345,则栈的输出序列43512是____。
3.5一个栈的输入序列是12345,则栈的输出序列12345是____。
第四章串4.1串是一种特殊的线形表,其特殊性体现在___B_A. 可以顺序存储B. 数据元素是一个字符C. 可以链接存储D. 数据元素可以是多个字符4.2 串的两种最基本的存储方式是顺序和链式。
4.3两个串相等的充分必要条件是:长度相等且对应位置上的字符相等。
4.4 空串是____,其长度等于____.4.5 串的三种机内表示方法是________、________、和___________。
数据结构习题集(包含全部答案)
数据结构习题集(包含全部答案)数据结构习题集(自编)第一章绪论一、选择题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、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
数据结构_习题集
习 题 3 一、选择题
1在栈顶一端可进行的全部操作是( C)。 A 插入 B 删除 C插入和删除 2 栈的特点是(B )。 A 先进先出 B 后进先出 3 顺序栈是空栈的条件是( A)。 A top==0 B top==1 C top== -1 C后进后出 D进栈 D不进一个栈,top表示栈顶指针,已知栈未满, 则x入栈时所执行的操作是( D)。 A a[--top]=x; B a[top--]=x C a[++top]=x D a[top++]=x 5 一个栈的入栈序列是a,b,c,d,e,则不可能的出栈序列是( B)。 A edcda B dceab C decba D abcde 6 经过下列栈的运算后EmptyStack(s)的值是(C )。 InitStack(s);Push(s,a);Push(s,b);Pop(s,x);Pop(s,x) ?????????? Aa Bb C1 D0
数据结构习题册 基 础 篇
习 题 1 一、选择题
1 计算机算法必须具备输入、输出、( B)等5个特性。 A 可行性、可移植性和可扩展性 B 可行性、确定性和有穷性 C 确定性、有穷性和稳定性 D 易读性、安全性和稳定性 2 在数据结构中,从逻辑上可以把数据结构分为(D) A 动态结构和静态结构 B 紧凑结构和非紧凑结构 C 内容结构和外部结构 D 线性结构和非线性结构 3 下面程序段的时间复杂性的量级为( D) 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) 4 在数据结构中,与所使用的计算机无关的是数据的(A )结构 A 逻辑 B 存储 C 逻辑和存储 D 物理 5 数据结构在计算机中的表示是指(C ) A 数据的逻辑结构 B 数据结构 C 数据的存储结构 D 数据元素之间 的关系 6 下面(B )的时间复杂性最好,即执行时间最短。 A O(n) B O(logn) C O(nlogn) D O(n2) 7 下面程序段的时间复杂性的量级为(D )。 Int fun(int n){ I=1,s=1;
《数据结构》习题册
《数据结构》练习题习题一一.单项选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的(1)以及它们之间的(2)和运算的学科.(1)A.操作对象 B.计算方法 C.逻辑存储 D.数据映象(2)A. 结构 B.关系 C.运算 D. 算法2.数据结构被形式地定义为(K,R),其中K是(1)的有限集合,R是K上的(2)有限集合.(1)A.算法 B. 数据元素 C. 数据操作 D.逻辑结构(2)A. 操作 B. 映象 C. 存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成( ).A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构4.计算机算法指的是(1),它必具备输入,输出和(2)等五个特性.(1)A. 计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法(2)A.可行性、可移植性和可扩充性 B.可行性、确定性和有穷性C. 确定性、有穷性和稳定性 D.易读性、稳定性和安全性5.线性表的顺序存储结构是一种(1)的存储结构,线性表的链式存储结构是一种(2)的存储结构.(1)(2)A.随机存取 B.顺序存取 C.索引存取 D.散列存取6.线性表的逻辑顺序与存储顺序总是一致的,这种说法( )A.正确 B.不正确7.线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )A.必须是连续的 B.部分地址必须是连续的C. 一定是不连续 D.连续或不连续都可以8.在以下的叙述中,正确的是( )A.线性表的线性存储结构优于链表存储结构B.二维数组是其数据.元素为线性表的线性表C. 栈的操作方式是先进先出D.队列的操作方式是先进后出9.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( ). A.110 B.108 C.100 D.12010.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( ).A.edcba B.decba C. dceab D.abcde11.栈结构通常采用的两种存储结构是( ).A.顺序存储结构和链表存储结构B.散列方式和索引方式C. 链表存储结构和数组D.线性存储结构和非线性存储结构12.判定一个栈ST(最多元素为mO)为空的条件是(①);判定ST为满的条件是(②).A.ST-->top<>0 B.ST-->top=0 C. ST-->mp<>m0 D.ST-->top=mO12.栈的特点是(①),队列的特点是(②).A.先进先出 B,先进后出13.一个队列的入列序列是1,2,3,4,则队列的输出序列是( ).A. 4,3,2,1B.1,2,3,4 C.1,4,3,2 D.3,2,4,114.判定一个队列QU(最多元素为mO)为空的条件是(①);判定QU为满的条件是(②).A. QU->rear-QU->front==m0B. QU->rear-QU->front-1==m0C. QU->front==QU->rearD. QU->front==QU->rear+115.判定一个循环队列QU(最多元素为mO)为空的条件是(①);判定QU为满的条件是(②).A. QU->front==QU->rearB. QU->front!=QU->rearC. QU->front==(QU->rear+1)%m0D. QU->front!=(QU->rear+1)%m016.栈和队列的共同点是( ).A.都是先进后出 B.都是先进先出C. 只允许在端点处插入和删除元素 D.没有共同点17.不带头结点的单链表head为空的判定条件是( ).A. head=NULLB. head->next=NULLC. head->next=headD.head!=NULI18.带头结点的单链表head为空的判定条件是( ).A. head=NULLB. head->next=NULLC. head->next=headD. head!=NULL19.非空的循环单链表head的尾结点是(由p所指向)满足( ).A. p->next=NULLB. p=NULLC. p->next=headD. p=head20. 在循环双链表的p所指结点之后插入s所指点的操作是( ).A. p->right=s;s->left=p; p->right->left=s;s->right=p->right;B. p->right=s;p->right->left=s;s->left=p;s->right=p->right;C. s->left=p:s->right=p->right;p->right=s;p->right->left=s;D. s->left=p;s->right=p->right;p->right->left=s;p->right=s;21. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行( ). A.s->next=p->next;p->next=s;B. p->next=s->next;s->next=p;C. q->next=s;s->next=p:D. p->next=s;s->next=q;22. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行( ).A. s->next=p;p->next=s;B. s->next=p->next;p->next=s;C. s->next=p->next; p=s;D. p->next=s;s->next=p;23.在一个单链表中,若删除p所指结点的后续结点,则执行( ).A. p->next=p->next->next;B. p=p->next;p->next=p->next->next;C. p->next=p->next;D. p=p->next->next;24. 假设双链表结点的类型如下:typedef struct linknode{int data;struct linknode *llink;struct linknode *rlink;}bnode;下面给出的算法段是要把一个q所指新结点作为非空双向链表中的p所指结点的前驱结点插入到该双链表中,能正确完成要求的算法段是( ).A.q->rlink=p; q->llink=p->llink; p->llink=q; p->llink->rlink=q;B.p->llink=q; q->rlink=p; p->llink->rlink=q; q->llink=p->llink;C. q->llink=p->llink; q->rlink=p; p->llink->rlink=q; p->llink=q;D.以上都不对25.从一个具有n个结点的单链表中查找等于x结点时.在查找成功的情况下,需平均比较( )个结点.A. n B.n/2 C.(n-1)/2 D.(n+1)/226.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( ).A. O(1) B.O(n) C.O(n2) D. O(nlog2n)27.向一个栈顶指针为16的链栈中插入一个s所指结点时,则执行( ).A.HS->next=s; B.s->next=HS->next;HS->next=s;C.s->next=HS;HS=s; D.s->next=HS; HS=HS->next;28.从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行( ).A.x=HS;HS=HS->next; B.x=HS->data;C.HS=HS->next;x=HS->data;D. x=HS->data;HS=HS->next;29.在一个链队中,假如f和r,分别为队首和队尾指针,要插入s所指结点,则执行( ).A.f->next=s;f=s;B.r->next=s;r=s;C. s->next=r; r=s;D.s->next=f; f=s;30.在一个链队中,假如f和r分别为队首和队尾指针.要删除一个结点,则执行( )oA.r=f->next; B.r=f->next; C.f=f->next; D.f=r->next;31.空串与空格串是相同的,这种说法( ).A.正确 B.不正确32.设有两个串p和q,求q在p中首次出现的位置的运算称作( ).A.连接 B,模式匹配 C.求子串 D.求串长33.串是一种特殊的线性表,其特殊性体现在( ).A.可以顺序存储 B.数据元素是一个字符C.可以链接存储 D.数据元素可以是多个字符34.设串s1='ABCDEFG’,s2='PQRST',函数CONCAT(x,y)返回x和y串的连接串,SUBSTR(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,STRLEN(s)返回串s的长度,则CONCAT(SUBSTR(s1,2,STRLEN(s2)),SUBSTR(s1,STRLEN(s2),2)的结果串是( ).A.BCDEF B.BCDEFG C.BCPQRST D.BCDEFEF35.常对数组进行的两种基本操作是( ).A.建立与删除 B.索引和修改 C查找和修改 D.查找与索引36.二维数组M的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到8,列下标j 的范围从1到10,则存放M至少需要(①)个字节;M的第8列和第5行共占(②)个字节;若M按行优先方式存储,元素M[8][5]的起始地址与当M按列优先方式存储时的( ③)元素的起始地址一致.①A.90 B.180 C.240 D.540②A.108 B.114 C.54 D.60③A.M[8][5] B.M[3][10] C.M[5][8] D.M[0][9]37.数组A中每个元素的长度为3个字节,行下标i从1到8,列下标从l到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是( ).A.80 B.100 C.240 D.27038.数组A中每个元素的长度为3个字节,行下标i从l到8,列下标从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址是(①);按列存放时,元素A[5][8]的起始地址是(②).①A.SA+141 B.SA+144 C.SA+222 D.SA+225②A. SA+141 B.SA+180 C.SA+222 D.SA+22539.稀疏矩阵一般的压缩存储方法有两种,即( ).A.二维数组和三维数组 B.三元组和散列C. 三元组和十字链表 D.散列和十字链表40.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点( ).A.正确 B.不正确二、填空题1.数据逻辑结构包括___________、_______________和______________三种类型,树型结构和图型结构合称为 _____________________2.在线性结构中,第一个结点______________前驱结点,其余每个结点有且只有________个前驱结点,最后一个结点_______后继结点,其余每个结点有且只有__________个后继结点.3.算法的五个重要特性是________ 、_________、______________、___________ 、_________ 和___________. 4.向量、栈和队列都是__________结构,可以在向量_________位置插入和删除元素;对于栈只能在_________ 插入和删除元素:对于队列只能在___________插入元素和在________删除元素.5.向一个长度为n的向量的第i个元素(1<=i<=n+1)之前插入一个元素时,需向后移动_______个元素.若要删除第j个元素(1<=j<=n)时,需向前移动______________个元素.6. 向栈中压入元素的操作是先____________________________,后存入元素.出栈的操作是先取出元素,后__________________.7.在一个循环队列中,队首指针指向队首元素的_____________;从该队列中删除一个元素时,其操作是先_________________,后取出元素.8.在具有n个单元的循环队列中,队满时共有_____________元素.9.单链表是_________________ 的链式存储表示.10.在双链表,每个结点有两个指针域,通常一个指向___________,另一个指向_________________.11.在一个单链表中的p所指结点之前插入一个s所指结点时,可执行如下操作:(1)s->next=_____________ (2)p->next=s; (3)t=p->data;(4)p->data=_______________; (5)s->data=_______________;12.在一个单链表中删除p所指结点时,应执行以下操作:(1)q=p->next; (2)p->data=p->next->data;(3)p->next=_________________; (4)free(q);13.带有一个头结点的单链表head为空的条件是____________________.14.在一个单链表中p所指结点之后插入一个s所指结点时,应执行(1)s->next=______________; (2)p->next=_________________;15.在栈项指针为HS的链栈中,判定栈空的条件是______________ .16.在HQ的链队中,判定只有一个结点的条件是__________________ .17.串的两种最基本的存储方式是________________ 和_____________.18.两个串相等的充分必要条件是 ____________________.19.空串是_________________,且其长度等于________________.20.已知二维数组A[m][n]采用以行优的存储方式,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是_________________________.21. 广义表是____________________. 如G=(al,a2,a3,…,ai,...,an),其中G是___________,n是_______________________,ai也可以是___________________________.22.广义表(((a)))的表头是_________________,表尾是__________;广义表((a),((b),c),(((d))))的长度是____________;深度是_____________________ .23.设HEAD[P]为求广义表P的表头函数,TAIL[P]为求广义表P的表尾函数.求下列的运算结果:(1)HEAD[(a,b,c)]= _________________; (2)TAIL[(a,b,c)]=__________________;(3)HEAD[((a),(b))]=_________________; (4)TAIL[((a),(b))]=____________________.习题二一、选择题1. 如下图所示的4棵二叉树中,( )不是完全二叉树.2.A.正确 B .不正确3.设高度为h 的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为 ( ).A .2h B. 2h-1 C .2h+1 O .h+l4.已知某二叉树后序遍历序列是dabec ,中序遍历序列是debac ,它的前序遍历序列是( ).A .acbed B.decab C.deabc D .cedba5.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值.这种说法( ).A .正确 B.不正确6.按照二叉树的定义,具有3个结点的二叉树有( )种形态A.3 B .4 C .5 D .67.深度为5的二叉树至多有( )个结点.A .16B .32C .21 D.108在一非空二叉树的中序遍历序列中,根结点的右边( ).A .只有右子树上的所有结点B .只有右子树上的部分结点C .只有左子树上的部分结点 D.只有左子树上的所有结点9.树最适合用来表示( ).A .有序数据元素B .无序数据元素C .元素之间具有分支层次关系的数据D .元素之间无联系的数据10.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法( ).A .正确 B.不正确11.对于一个满二叉树,m 个树叶,n 个结点,深度为h ,则( ), A .n=h+m B. h+m=2n C .m=h-1 D .n=2h -112.在一个图中,所有顶点的度数之和等于所有边数的( )倍.A.1/2B.1C.2D.413.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍.A.1/2 B .1 C.2 D.414.一个有n 个顶点的无向图最多有( )条边.A .n B.n(n-1) C .n(n-1)/2 D .2n15.具有4个顶点的无向完全图有( )条边.A.6B.12 C .16 D .2016.具有6个顶点的无向图至少应有( )条边才能确保是一个连通图.A. 5B. 6 C . 7 D . 817.在一个具有n 个顶点的无向图中,要连通全部顶点至少需要( )条边.A. nB. n+1 C . n-1 D . n/218.对于一个具有n 个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是( ).A .n B.(n-1)2 C .n-1 D .n 219.对于一个具有n 个顶点和e 条边的无向图,若采用邻接矩阵表示,则表头向量的大小为(①);所有邻接表中的结点总数是(②).A .nB .n+l C. n-1 D.n+eA.e/2 B .e C .2e D.n+e20.已知一个图G(见下图),若从顶点a 出发按深度搜索法进行遍历,则可能得到的一种顶点序列为(①);按宽度搜索法进行遍历,则可能得到的一种顶点序列为(②).A .a, b ,e ,c ,d, fB .a ,c, f ,e ,b ,dC .a ,e ,b ,c ,f, dD .a ,e ,d ,f ,c ,bA .a, b, c ,e ,d ,fB .a, b, c, e, f, dC .a ,e ,b, c ,f ,dD .a ,c ,f, d ,e, b二、填空题1.指出树和二叉树的主要差别________________________________________________________ .2.深度为k 的完全二叉树至少存_________个结点.至多有______________个结点,若按自上而下,从左 到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是___________________________.3.在一棵二叉树中,度为零的结点的个数为n.,度为2的结点的个数为n2,则有 n0=___________________4.结点最少的树为__________________; 结点最少的二叉树为________________;一棵二叉树的第i 层最多有__________________个结点.5.现有按中序遍历二叉树的结果为abc ,则有__________________棵二叉树可以得到这一遍历结果;这些二叉树分别是:6.树有三种常用的存储方法:__________________、________________ ,______________8.n 个顶点的连通图至少有________________________条边.9. 在无向图G 的邻接矩阵A 中,若A[i][j]等于1,,则A[j][i]等于_________________.10.已知一个图的邻接矩阵表示,计算第 i 个结点的入度的方法是_____________________________11.已知一个图的邻接矩阵表示,删除所有从第i 个结点出发的边的方法是____________________________12.已知无向图G 的邻接链表如下图所示,求:(1)画出对应的无向图G 。
《数据结构》试题汇编(带答案)
《数据结构》习题汇编一、单项选择题1.在数据结构中,从逻辑上可以把数据结构分成()。
A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构2.数据结构在计算机内存中的表示是指()。
A. 数据的存储结构B. 数据结构C. 数据的逻辑结构D. 数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的()结构。
A. 逻辑B. 存储C. 逻辑和存储D. 物理4.计算机算法指的是(①),它必须具备输入、输出和(②)等5个特性。
①A. 计算方法 B. 排序方法C. 解决问题的有限运算序列D. 调度方法②A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性5.在一个长度为n的顺序表中向第i个元素(1≤i≤n+1)位置插入一个新元素时,需要从后向前依次后移()个元素。
A. n-iB. n-i+1C. n-i-1D. i6.在一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需要从前向后依次前移()个元素。
A. n-iB. n-i+1C. n-i-1D. i7.在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为()。
A. O(n)B. O(1)C. O(n2)D. O(log2n)8.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为()。
A. O(n)B. O(n/2)C. O(1)D. O(n2)9.不带头结点的单链表first为空的判定条件是:()A. first == NULL;B. first->next == NULL;C. first->next == first;D. first != NULL;10.带头结点的单链表first为空的判定条件是:()A. first == NULL;B. first->next == NULL;C. first->next == first;D. first != NULL;11.设单链表中结点的结构为(data, next)。
《数据结构》习题集
《数据结构》习题集第一章序论思考题:1。
1简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类型、抽象数据类型作业题:1。
2设有数据结构(D,R),其中D={d1, d2, d3, d4}R={r1,r2}r1={<d1, d2〉,<d2,d3>,<d3,d4〉,〈d1, d4>,〈d4,d2>, 〈d4, d1〉}r2={(d1, d2),(d1,d3),(d1, d4),(d2, d4), (d2, d3)}试绘出其逻辑结构示意图。
1。
3设n是正整数。
试写出下列程序段中用记号“△”标注的语句的频度: (1)i=1; k=0;while(i〈=n-1){△k+=10*i;i++;}(2) i=1; k=0;do {△k+=10*i;i++;}while(i〈=n-1)(3)i=1; k=0;do {△k+ = 10*i; i++;}while(i==n);(4) i=1; j=0;while(i+j≤n) {△if(i〈j) i++;else j++;}(5) x=n; y=0; //n是不小于1的常数while(x〉=(y+1)*(y+1)){△y++;}(6)x=91; y=100;while ( y>0 ){△if(x>100) { x—=10; y——; }else x++ ;}(7) for( i=0; i〈n; i++)for( j=i; j〈n; j++)for( k=j; k〈n; k++)△x+=2;1。
4 试写一算法,自大至小依次输出顺序读入的三个整数X,Y和Z的值。
1.5 已知k阶斐波那契序列的定义为:f0=0,f1=0,……,f k—2=0,f k—1=1;f n=f n—1+f n-2+……+f n-k, n=k,k+1,……试编写求k阶斐波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。
数据结构课程习题集第1页共25页
《数据结构》课程习题集第 1 页(共 25 页)一、. 选择题. 1. 算法的计算量的大小称为计算的()。
A.效率 B. 复杂性 C. 现实性 D. 难度.2. 算法的时间复杂度取决于().A.问题的规模 B. 待处理数据的初态 C. A和B 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.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表.9.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表.10. 链表不具有的特点是().A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比.11. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是()。
A. 5 1 2 3 4B. 4 5 1 3 2C. 4 3 1 2 5D. 3 2 1 5 4.12. 某堆栈的输入序列为a, b,c ,d,下面的四个序列中,不可能是它的输出序列的是()。
数据结构综合习题集(含答案)
... 数据结构习题集一、选择题一、选择题1.数据结构中所定义的数据元素,是用于表示数据的.数据结构中所定义的数据元素,是用于表示数据的。
( C ) A.最小单位最小单位 B.最大单位 C.基本单位 D.不可分割的单位不可分割的单位2.从逻辑上可以把数据结构分为.从逻辑上可以把数据结构分为( C ) A.动态结构、静态结构动态结构、静态结构 B.顺序结构、链式结构顺序结构、链式结构C.线性结构、非线性结构线性结构、非线性结构D.初等结构、构造型结构初等结构、构造型结构3.当待排序序列中记录数较少或基本有序时,最适合的排序方法为(A )A.直接插入排序法B.快速排序法快速排序法C.堆排序法D.归并排序法归并排序法4.关于串的的叙述,不正确的是( B) A.串是字符的有限序列串是字符的有限序列 B.空串是由空格构成的串空串是由空格构成的串C.替换是串的一种重要运算替换是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储串既可以采用顺序存储,也可以采用链式存储5.带表头结点链队列的队头和队尾指针分别为front 和rear ,则判断队空的条件为(A )A.front==rearB.front!=NULLC.rear!=NULLD.front==NULL 6.若构造一棵具有n 个结点的二叉排序树,最坏的情况下其深度不会超过(B )A.n/2B.nC.(n+1)/2D.n+1 7.将两个各有n 个元素的有序表合并成一个有序表,其最少的比较次数为(A )A.nB.2n-1C.2nD.n 2 8.设顺序表有19个元素,第一个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为(B )A.236B.239C.242D.245 9.一个栈的入栈序列是a,b,c,d,e ,则栈的输出序列不可能是(A )A.dceabB.decbaC.edcbaD.abcde 10.元素大小为1个单元,容量为n 个单元的非空顺序栈中,以地址高端为栈底,以top 作为栈顶指针,则出栈处理后,top 的值应修改为(D )A.top=topB.top=n-1C.top=top-1D.top=top+1 11.设有一个10阶的对称矩阵A ,采用压缩存储方式以行序为主序存储,a 00为第一个元素,其存储地址为0,每个元素占有1个存储地址空间,则a 45的地址为(的地址为( B )A.13B.35C.17D.36 12.栈和队列( C ) A.共同之处在于二者都是先进先出的特殊的线性表共同之处在于二者都是先进先出的特殊的线性表B.共同之处在于二者都是先进后出的特殊的线性表共同之处在于二者都是先进后出的特殊的线性表C.共同之处在于二者都只允许在顶端执行删除操作共同之处在于二者都只允许在顶端执行删除操作D.没有共同之处没有共同之处13.含有n 个结点的二叉树用二叉链表表示时,空指针域个数为(C )A.n-1B.nC.n+1D.n+2 14.对一棵有100个结点的完全二叉树按层序编号,则编号为49的结点,它的左孩子的编号为(号为( B )A.99B.98C.97D.50 15.在一个图中,所有顶点的度数之和与图的边数的比是( C)A.1∶2B.1∶1C.2∶1D.4∶1 16.在一个具有n 个顶点的无向图中,要连通全部顶点至少需要的边数为(A )A.n-1B.nC.n+1D.n/2 17.在一个具有n 个顶点的无向图中,每个顶点度的最大值为( B )A.nB.n-1C.n+1D.2(n-1) 18.若采用邻接表存储结构,则图的广度优先搜索类似于二叉树的(D )A.先序遍历B.中序遍历中序遍历C.后序遍历D.层次遍历层次遍历19.对线性表进行二分查找时,要求线性表必须( C)A.以顺序方式存储以顺序方式存储B.以链式方式存储以链式方式存储C.以顺序方式存储,且结点按关键字有序排列以顺序方式存储,且结点按关键字有序排列D.以链接方式存储,且结点按关键字有序排列以链接方式存储,且结点按关键字有序排列20.二分查找算法的时间复杂度是(.二分查找算法的时间复杂度是( D )A.O(n 2)B.O(nlog 2n)C.O(n)D.O(log 2n) 21.采用排序算法对n 个元素进行排序,其排序趟数肯定为n-1趟的排序方法是(趟的排序方法是( C )A.插入和快速插入和快速B.冒泡和快速冒泡和快速C.选择和插入选择和插入D.选择和冒泡选择和冒泡22. 闭散列表中由于散列到同一个地址而引起的“堆积”现象,是( B)A.由同义词之间发生冲突引起的由同义词之间发生冲突引起的B.由非同义词之间发生冲突引起的由非同义词之间发生冲突引起的C.由同义词之间或非同义词之间发生冲突引起的由同义词之间或非同义词之间发生冲突引起的D.由散列表“溢出”引起的引起的 23.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。
数据结构习题集
数据结构习题集数据结构试题一、单项选择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)。
A)线性表中元素之间的关系是线性关系B)线性表中至少有一个元素C)线性表中的任一元素有且仅有一个直接前趋D)线性表中的任一元素有且仅有一个直接后继2.下述哪一条是顺序存储结构的优点?(A)A)存储密度大B)插入方便C)删除方便D)可方便地用于各种逻辑结构的存储表示3.在一个长度为n的顺序表中,在第i个元素(1<=i<=n)之前插入一个新元素时需向后移动(D)个元素。
A)1 B)n-i C)n-i-1 D)n-i+14.如果某线性表中最常用的操作是取第i个元素和找第i个元素的前驱,那么采用(A)存储方式最节省时间。
A)顺序表B)单链表C)双链表D)循环链表5.对顺序存储的线性表,设其长度为n,且在任何位置上插入或删除操作都是等概率的。
则插入一个元素时平均要移动表中的(A)个元素。
A)n/2 B)(n+1)/2 C)(n-1)/2 D)n6.下述哪一条是顺序存储结构的缺点?(C)A)存储密度太大B)随机存取C)一般要估计最大的需要空间D)只能应用于少数几种逻辑结构的存储表示7.在单链表中,增加头结点的目的是(C)。
A)使单链表至少有一个结点B)标志表中首结点的位置C)方便运算的实现D)说明单链表是线性表的链式存储表示8.单链表不具有的特点是(A)。
A)可随机访问任一元素B)插入和删除不需要移动元素C)不必事先估计存储空间D)所需空间和线性表长度成正比9.循环链表的主要优点是(D)。
A)不再需要头指针了B)已知某个结点的位置后,能够容易找到他的直接前趋C)在进行插入、删除运算时,能更好的保证链表不断开D)从表中的任意结点出发都能扫描到整个链表10.链表对于数据元素的插入与删除是(B)。
A)不需移动结点,不需改变结点指针B)不需移动结点,只需改变结点指针C)只需移动结点,不需改变结点指针D)既需移动结点,又需改变结点指针11.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若要在q 和p 所指结点之间插入s所指的结点,则执行(B)。
数据结构习题册
第七章图一单选题1.在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的入度数之和为()。
A sB s-1C s+1D n2.在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的度数之和为()。
A nB s-1C s+1D 2s3.在一个具有n个顶点的无向图中,若具有e条边,则所有顶点的度数之和为()。
A sB eC n+eD 2e4.在一个具有n个顶点的无向完全图中,所含的边数为()。
A nB n(n-1)C n(n-1)/2D n(n+1)/25.在一个具有n个顶点的有向完全图中,所含的边数为()。
A nB n(n-1)C n(n-1)/2D n(n+1)/27.若一个图中包含有k个连通分量,若要按照深度优先搜索的方法访问所有顶点,则必须调用()次深度优先搜索遍历的算法。
A kB 1C k-1D k+18.在一个具有n个顶点和e条边的无向图的邻接矩阵中,表示边存在的元素(又称为有效元素)的个数为()。
A nB n×eC eD 2×e9.在一个具有n个顶点和e条边的有向图的邻接矩阵中,表示边存在的元素(又称为有效元素)的个数为()。
A nB n×eC eD 2×e10.对于一个有向图,若一个顶点的度为k1,出度为k2,则对应邻接表中该顶点单链表中的边结点数为()。
A k1B k2C k1- k2D k1+ k211.在一个有向图的邻接表中,每个顶点单链表中结点的个数等于顶点的()。
A 出边数B 入边数C 度数D 度数减112.若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对该图进行深度优先搜索,得到的顶点序列可能为()。
A A,B,C,F,D,EB A,C,F,D,E,BC A,B,D,C,F,ED A,B,D,F,E,C13.若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对该图进行广度优先搜索,得到的顶点序列可能为()。
数据结构习题集
7
对于一个具有 n 个结点的单链表,在已知的结点*p 后插入一个新结点的时间复杂度 为 ,在给定值为 x 的结点后插入一个新结点的时间复杂度为 ___。
8. 在顺序表中访问任意一结点的时间复杂度均为 的数据结构。
9、线性链表不具有的特点是( ) 。 A.随机访问 C.插入与删除时不必移动元素
,因此顺序表也称为
17.双循环链表中,任意一结点的后继指针均指向其逻辑后继。(对还是错)
18、线性表L在
情况下适用于使用链式结构实现。 B、需不断对L进行删除插入 D、L中结点结构复杂 )
A、需经常修改L中的结点值 C、L中含有大量的结点
19 若某线性表中最常用的操作是取第 i 个元素和找第 i 个元素的前趋元素, 则采用 ( 存储方式最节省时间。 ①单链表 ②双链表 ③单向循环 ④顺序表
3. 在双向链表指针 p 的结点前插入一个指针 q 的结点操作是( A. p->Prior=q;q->Next=p;p->Prior->Next=q;q->Prior=p->Prior; B. p->Prior=q;p->Prior->Next=q;q->Next=p;q->Prior=p->Prior; C. q->Next=p;q->Prior=p->Prior;p->Prior->Next=q;p->Prior=q; D. q->Prior=p->Prior;q->Next=p;p->Prior=q;p->Prior->Next=q;
第 4 章 数组 知识点:二维数组的存储、特殊矩阵
1. 假设有二维数组 A6×8,每个元素用相邻的 6 个字节存储,存储器按字节编址。 已知 A 的起始存储位置 (基地址) 为 1000, 则数组 A 的体积 (存储量) 为 ; 末尾元素 A57 的第一个字节地址为 ;若按行存储时,元素 A14 的第一 个字节地址为 ;若按列存储时,元素 A47 的第一个字节地址 为 。
数据结构习题集和答案
第1章绪论1、填空题1.常见的数据结构有集合,_线性__结构,__树形___结构,__图形__结构等四种。
2.常见的存储结构有__顺序存储_______结构,__链式存储____结构等两种。
3.数据的基本单位是_数据元素___,它在计算机中是作为一个整体来处理的。
4.数据结构中的结构是指数据间的逻辑关系,常见的结构可分为两大类,__线性结构____和__非线性结构___。
2、选择题1. 算法的计算量的大小称为计算的(B)。
A.效率 B. 复杂性 C. 现实性D. 难度2. 算法的时间复杂度取决于(C)A.问题的规模 B. 待处理数据的初态 C. A和B D. 以上都不对3.计算机算法指的是(1)(c),它必须具备(2)(B)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4. 下面关于算法说法错误的是(D)A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的3、应用题1、给出以下算法的时间复杂度.void fun(int n){int i=1,k=100;while(i<n){k=k+1;i=i+2;}}时间复杂度为____O(n)_____。
2、给出以下算法的时间复杂度.void fun2(int n){int i=1,k=100;while(i<n){i=i*10;k=k+1;}}时间复杂度为____O(log n)___________。
第2章线性表1、填空题1. 线性表按照存储结构不同主要有两种实现方式,一种是__顺序_表,另一种是___链___表。
2.顺序表采用__随机___访问机制对数据元素进行访问。
3.若在单链表结点p的后面插入一个新的结点s,则其操作序列为:①____s->next=p->next_____________;②____p->next=s___________________;4.在单向链表中,若要删除某个结点p,一般要找到__p的前趋__结点,才能实现该操作。
数据结构习题集(2022)
数据结构习题集(2022)第一章绪论1.下面是几种数据的逻辑结构S=(D,R),分别画出对应的数据逻辑结构,并指出它们分别属于何种结构。
D={a,b,c,d,e,f}R={r}(a)r={,,,,}(b)r={,,,,}(c)r={,,,,}2.分析下列程序段的时间复杂度(a)for(i=0;ifor(j=0;jfor(i=0;ifor(j=0;jWhile(i3.在数据结构中,与所使用的计算机无关的是A.存储结构B.物理结构C.物理和存储结构D.逻辑结构4.非线性结构中每个结点A.无直接前驱结点B.只有一个直接前驱和直接后继结点C.无直接后继结点D.可能有多个直接前驱和多个直接后继结点5.可以把数据的逻辑结构划分成A.内部结构和外部结构B.动态结构和静态结构C.紧凑结构和非紧凑结构D.线性结构和非线性结构6.算法的时间复杂度取决于()。
A.问题的规模B.待处理数据的初态C.A和B7.计算机算法指的是(),它必须具备()这三个特性。
(1)A.计算方法B.排序方法C.解决问题的步骤序列D.调度方法(2)A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性D.易读性、稳定性、安全性第二章线性表一、单项选择题1.下面关于线性表叙述中,错误的是_(1)_。
(1):A.顺序表必须占用一片地址连续的存储单元B.链表不必占用一片地址连续的存储单元C.顺序表可以随机存取任一元素D.链表可以随机存取任一元素2.在表长为n的单链表中,算法时间复杂度为O(n)的操作是(2)。
(2):A.查找单链表中第i个结点B.在p结点之后插入一个结点C.删除表中第一个结点D.删除p结点的直接后继结点3.单链表的存储密度(3)(3):A.大于1B.等于1C.小于1D.不能确定4.在表长为n的顺序表中,算法的时间复杂度为O(1)的操作是(4)(4):A.在第n个结点之后插入一个结点B.在第i个结点前插入一个新结点C.删除第i个结点D.求表长5.在下列链表中不能从当前结点出发访问到其余各结点的是(5)。
《数据结构》习题集:第2章_线性表
第2章线性表一、选择题1.表长为N 的顺序表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为(E ),删除一个元素需要移动的元素个数为(A )。
A. (N-1)/2B. NC. N+1D. N-1E. N/2F. (N+1)/2G. (N-2)/22.线性表是具有N 个(C )的有限序列。
A、表元素B、字符C、数据元素D、数据项E、信息3.“线性表的逻辑顺序和物理顺序总是一致的。
”这个结论是(B )。
A、正确的B、错误的C、不一定,与具体结构有关。
4.线性表采用链式存储结构时,要求内存中可用存储单元的地址(D )。
A、必须是连续的B、部分地址必须是连续的C、一定是不连续的D、连续或不连续都可以。
5.带头结点的单链表为空的判定条件是(B )。
A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL6.不带头结点的单链表head 为空的判定条件是(A )。
A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL7.非空的循环单链表head 的尾结点P 满足( C )。
A、P->NEXT=NULLB、p=NULLC、p->next==headD、p==head8.在一个具有n 个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是(B )。
A、O(1)B、O(n)C、O(n2)D、O(nlog2n)9.在一个单链表中,若删除P 所指结点的后继结点,则执行( A )。
A、p->next=p->next->nextB、p=p->next;p->next=p->next->nextC、p->next=p->next;D、p=p->next->next;10.在一个单链表中,若在P所指结点之后插入S所指结点,则执行(B )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》习题集学号:姓名:指导教师:第1章绪论1、填空题1.常见的数据结构有_________结构,_________结构,_________结构,_________结构等四种。
2.常见的存储结构有_________结构,_________结构等两种。
3.数据的基本单位是_________,它在计算机中是作为一个整体来处理的。
4.数据结构中的结构是指数据间的逻辑关系,常见的结构可分为两大类,_________和_________。
2、选择题1. 算法的计算量的大小称为计算的()。
A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于()A.问题的规模 B. 待处理数据的初态 C. A和B D. 以上都不对3.计算机算法指的是(1)(),它必须具备(2)()这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的3、应用题1、给出以下算法的时间复杂度.void fun(int n){int i=1,k=100;while(i<n){k=k+1;i=i+2;}}时间复杂度为_______________。
2、给出以下算法的时间复杂度.void fun2(int n){int i=1,k=100;while(i<n){i=i*10;k=k+1;}}时间复杂度为_______________。
第2章线性表1、填空题1. 线性表按照存储结构不同主要有两种实现方式,一种是_______________表,另一种是_______________表。
2.顺序表采用_______________访问机制对数据元素进行访问。
3.若在单链表结点p的后面插入一个新的结点s,则其操作序列为:①_____________________________;②_____________________________;4.在单向链表中,若要删除某个结点p,必须要找到_______________结点,才能实现该操作。
2、选择题1.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。
(A)n (B)2n-1 (C)2n (D)n-12.在单链表中,如果在结点p之后插入一个新结点s,其操作为。
(A)s->next=p->next; p->next=s;(B)p->next=s; s->next=p->next;(C)s->next=p; p->next=s->next;(D)p->next=s; s->next=p;3.若长度为n的线性表采用顺序存储结构,在其第i个位置删除一个元素的算法的平均时间复杂度为( )。
(1≤i≤n)A.O(0) B.O(1) C.O(n) D.O(n2)4. 若长度为n的线性表采用顺序存储结构,在其第i个位置前插入一个新元素需要移动的元素个数为( )。
(1≤i≤n+1)A.n-i B.n-i+1 C. i D.n-i-13、判断题1. 线性表中每一个元素都有一个前驱和一个后继。
()2. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。
( )3. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
( )4、程序设计题1、单链表的结点结构定义如下:struct LinkNode{LinkNode *next;int data;};请根据描述函数的功能写程序。
void Insert(LinkNode *h,LinkNode *s){//h指向链表的头结点(即使链表中没有元素,头结点也存在。
)//链表中元素已经递增有序//函数功能为将结点s插入到链表h中。
插入后链表仍然保持递增的顺序}第3章栈和队列1、填空题1.栈和队列在本质上都是_____________。
2.栈的操作特点是_____________。
队列的操作特点是_____________。
2、选择题1.消除递归不一定需要使用栈,此说法_______。
A. 正确B. 错误2.用单循环链表表示队列,正确的说法是。
(A)可设一个头指针使入队、出队都方便;(B)可设一个尾指针使入队、出队都方便;(C)必须设头尾指针才能使入队、出队都方便;(D)无论如何,只可能使入队方便。
3、判断题1.栈的特点是先进先出。
()2.可以在队列的任意位置插入元素。
()3.如果进栈的序列为(1,2,3,4),则(4,2,3,1)不可能是出栈序列。
()4.在用顺序表表示的循环队列中,可用标志位来区分队空或队满的条件。
()第4章串1、选择题1. 设有两个串p和q,求q在p中首次出现的位置的运算称作()A.连接 B.模式匹配 C.求子串 D.求串长2、判断题1.空串和空格串是同一个概念,二者没有区别。
()第5章数组和广义表1、填空题1.二维数组在内存中存储可以有两种存储方式,一种是_________优先存储,一种是优先存储。
2.设广义表L=((),(),(()))。
则head(L)是;tail(L)是;L的长度是;L的深度是。
3.设广义表L=((a),(b),((c))) 则head(L)是________;tail(L)是________。
2、选择题1.在C语言中,如果有数组定义 int A[8][9];假定每个整型数据占2字节,则数组元素A[4][4]的地址是()。
A. A+80B. A+76C.A+82D.以上都不对2.广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为( );Head(Tail(Head(Tail(Tail(A)))))A.(g) B.(d) C.c D.d3、判断题1.在C语言中,多维数组的存储采取的是行优先的方式。
()2.广义表在本质上也是线性表。
()3.可以用三元组存储法来压缩存储稀疏矩阵。
()4.已知广义表A=((a,b,c),(d,e,f)),从A中取出原子e的运算是head(tail(head(tail(A))))。
( )第6章树和二叉树1、填空题1.一棵62个叶结点的完全二叉树,最多有________________个结点。
2.若规定仅有根的二叉树的高度为1,那么高为h的完全二叉树最多有________________个结点,最少有________________个结点。
3.设只包含有根结点的二叉树的高度为0,则高度为k的二叉树的最大结点数为________________,最小结点数为________________。
4.设仅包含根结点的二叉树的高度为1,则高度为k的二叉树的最大结点数为________________,最小结点数为________________。
2、选择题1.具有N个结点的完全二叉树的深度是________。
(A) log2N (B) log2N +1(C) log2(2N) (D) log2N -12.设二叉树的树根为第一层,则第i层上至多有_______结点。
(A)1 (B)2 (C)2i-1 (D)2i-13、判断题1.二叉树的左右子树次序是严格的,不能够任意改变。
()2.深度为k的满二叉树的结点为2^k-1。
()3.二叉树的三叉链表存储结构可以方便的访问到双亲结点。
()4、应用题1.在一段文字中,共出现a、b、c、d、e、f六种字符,每种字符出现的频率分别为7,9,12,22,23,27。
请回答下列问题:(1)什么是哈夫曼树?(3分)(2)根据题目所给频率值,画出相应的哈夫曼树。
(11分)(3)给出各个字符对应的哈夫曼编码。
(6分)(4)该段文字经过哈夫曼编码后,长度是多少。
(4分)2. 设一棵二叉树的先序遍历序列为abcde,中序遍历序列为badce,请画出对应的二叉树,并写出对应后序遍历序列。
(15分)3.通信报文中出现的字符A、B、C、D、E,在报文中出现的频率分别为0.23、0.2、0.32、0.12、0.13,分别给出相应字符的哈夫曼编码(要求画出哈夫曼树,并且把权值小的结点放在左边)。
(共14分)4.请证明对于任何一棵二叉树,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
(10分)5.请按照孩子-兄弟表示法,将图1所示树转化为二叉树。
(共14分)6.已知某二叉树的前序遍历序列为:A B C D E F G和中序遍历序列为:C B E D A F G。
请画出该二叉树。
7.已知通信联络中只可能出现A、B、C、D、E、F、G、H共8种字符,其出现次数分别为5,28,7,9,14,23,3,11次。
(1)请画出赫夫曼树(权值小的结点在左边)。
(15分)(2)计算该树的带权路径长度。
(3分)第7章图1、填空题1. 有n个顶点的有向连通图最多有条边,最少有条边。
2.具有n个顶点的完全无向图有________条边,完全有向图有________条边。
2、选择题1. __________方法可以判断出一个有向图中是否有环(回路)。
(A)深度优先遍历 (B)拓扑排序(C)求最短路径 (D)求关键路径2.关键路径是指__________。
(A)从开始事件到终止事件路径长度最短的路径(B)从开始事件到终止事件路径长度最长的路径(C)从开始事件到终止事件活动最少的路径(D)从开始事件到终止事件活动最多的路径3、判断题1.具有n个顶点的有向图最多有n*(n-1)条边。
()2.在AOV-网中,不应该出现有向环,因为存在环就意味着活动可以以自己为先决条件。
()4、应用题1、已知某图的存储结构如下,试写出该图从顶点A开始的深度优先遍历序列。
(11分)AB C D E F G H I J K2. 请给出图1的所有最小生成树。
(10分)图13. 已知某图采取如图2所示的邻接矩阵表示法,请回答下列问题。
(共12分)1 2 3 4 5 6图2(1) 请画出该图。
(6分)(2)对其从顶点A开始进行深度优先遍历,写出遍历序列。
(6分)4、(本题总计 7 分)构造该图的最小生成树。
第9章查找1、选择题1.若在线性表中采用二分查找法查找元素,该线性表应该( )。
A.元素按值有序 B.采用顺序存储结构C.元素按值有序,且采用顺序存储结构D.元素按值有序,且采用链式存储结构2.对二叉排序树进行_________遍历,可以得到该二叉树所有结点构成的有序序列。
(A) 前序 (B)中序 (C)后序 (D)按层次3.利用逐点插入法建立序列(51,71,43,81,74,20,34,45,64,30)对应的二叉排序树以后,查找元素34要进行( )元素间的比较。