数据结构习题集

合集下载

数据结构习题集

数据结构习题集

习题集一、填空题⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。

⑶ 从逻辑关系上讲,数据结构主要分为()、()、()和()。

⑷ 数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。

⑸ 算法具有五个特性,分别是()、()、()、()、()。

⑹ 算法的描述方法通常有()、()和()三种,⑺ 在一般情况下,一个算法的时间复杂度是()的函数。

⑻ 设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*logn,则表示成数量级的形式为()。

(9)顺序存储结构的特点是(),链接存储结构的特点是()。

(10) 在顺序表中,等概率情况下,插入和删除一个元素平均需移动()个元素,具体移动元素的个数与()和()有关。

(11) 顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是()。

(12) 设单链表中指针p 指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。

(13) 单链表中设置头结点的作用是()。

(14) 非空的单循环链表由头指针head指示,则其尾结点(由指针p所指)满足()。

(15)在由尾指针rear指示的单循环链表中,在表尾插入一个结点s的操作序列是();删除开始结点的操作序列为()。

(16) 一个具有n个结点的单链表,在指针p所指结点后插入一个新结点的时间复杂度为();在给定值为x的结点后插入一个新结点的时间复杂度为()。

(17)已知一维数组A采用顺序存储结构,每个元素占用4个存储单元,第9个元素的地址为144,则第一个元素的地址是()。

A 108B 180C 176D 112(18)在长度为n的线性表中查找值为x的数据元素的时间复杂度为:()。

A O(0)B O(1)C O(n)D O(n2)(19)在一个长度为n的顺序表的第i(1≤i≤n+1)个元素之前插入一个元素,需向后移动()个元素,删除第i(1≤i≤n)个元素时,需向前移动()个元素。

数据结构综合习题集(含答案)

数据结构综合习题集(含答案)

数据结构习题集一、选择题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==rear B.front!=NULL C.rear!=NULL D.front==NULL6.若构造一棵具有n个结点的二叉排序树,最坏的情况下其深度不会超过(B)A.n/2B.nC.(n+1)/2D.n+17.将两个各有n个元素的有序表合并成一个有序表,其最少的比较次数为(A)A.nB.2n-1C.2nD.n28.设顺序表有19个元素,第一个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为(B )A.236B.239C.242D.2459.一个栈的入栈序列是a,b,c,d,e,则栈的输出序列不可能是(A )A.dceabB.decbaC.edcbaD.abcde10.元素大小为1个单元,容量为n个单元的非空顺序栈中,以地址高端为栈底,以top作为栈顶指针,则出栈处理后,top的值应修改为(D )A.top=topB.top=n-1C.top=top-1D.top=top+111.设有一个10阶的对称矩阵A,采用压缩存储方式以行序为主序存储,a00为第一个元素,其存储地址为0,每个元素占有1个存储地址空间,则a45的地址为(B)A.13B.35C.17D.3612.栈和队列( C )A.共同之处在于二者都是先进先出的特殊的线性表B.共同之处在于二者都是先进后出的特殊的线性表C.共同之处在于二者都只允许在顶端执行删除操作D.没有共同之处13.含有n个结点的二叉树用二叉链表表示时,空指针域个数为(C )A.n-1B.nC.n+1D.n+214.对一棵有100个结点的完全二叉树按层序编号,则编号为49的结点,它的左孩子的编号为(B)A.99B.98C.97D.5015.在一个图中,所有顶点的度数之和与图的边数的比是( C)A.1∶2B.1∶1C.2∶1D.4∶116.在一个具有n个顶点的无向图中,要连通全部顶点至少需要的边数为(A )A.n-1B.nC.n+1D.n/217.在一个具有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(n2)B.O(nlog2n)C.O(n)D.O(log2n)21.采用排序算法对n个元素进行排序,其排序趟数肯定为n-1趟的排序方法是(C)A.插入和快速B.冒泡和快速C.选择和插入D.选择和冒泡22. 闭散列表中由于散列到同一个地址而引起的“堆积”现象,是( B)A.由同义词之间发生冲突引起的B.由非同义词之间发生冲突引起的C.由同义词之间或非同义词之间发生冲突引起的D.由散列表“溢出”引起的23.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。

数据结构习题集

数据结构习题集

数据结构习题集第一章绪论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选择题2第一章绪论2第二章线性表4第三章栈和队列5第四章串6第五章数组和广义表7第六章树和二叉树7第七章图9第八章查找11第九章排序12简答题15第一章绪论15第二章线性表20第三章栈和队列22第四章串24第五章数组和广义表24第六章树和二叉树26第七章图31第八章查找33第九章排序34编程题36第一章绪论36第二章线性表36第三章栈和队列46第四章串46第五章数组和广义表46第六章树和二叉树46第七章图46第八章查找46第九章排序51选择题第一章绪论1.数据结构这门学科是针对什么问题而产生的?(A)A、针对非数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与非数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下面选项最准确的是(D)A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下面关于数据对象、数据元素、数据项描述正确的是(C)A、某班级的学生成绩表是数据元素,90分是数据项B、某班级的学生成绩表是数据对象,90分是数据元素C、某班级的学生成绩表是数据对象,90分是数据项D、某班级的学生成绩表是数据元素,90分是数据元素4.某数据结构是指(A)。

A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C)。

A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的目的是(C)A、找出数据的合理性B、研究算法中的输入和输出关系C、分析算法效率以求改进D、分析算法的易懂性和文档型性7.算法分析的主要方法(A)。

A、空间复杂度和时间复杂度B、正确性和简明性C、可读性和文档性D、数据复杂性和程序复杂性8.计算机内部处理的基本单元是(B)A、数据B、数据元素C、数据项D、数据库9.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要(B)。

《数据结构》习题集

《数据结构》习题集

《数据结构》习题集第一章序论思考题: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 页(共 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、若某线性表中最常用的操作是在最后一个元素之前插入和删除元素,则采用___________最节省运算时间.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.图可以没有边,但不能没有顶点。

( )2.在无向图中,(v1,v2)和(v2,v1)是两条不同的边。

(X)3.邻接表只能用于有向图的存储。

(X)4.一个图的邻接矩阵表示是唯一的。

( )5.用邻接矩阵法存储一个图时,所占用的存储空间大小与图中顶点个数无关,而只与图的边数有关。

(X)6.有向图不能进行广度优先遍历。

(X)7.若一个无向图以顶点v1为起点进行深度优先遍历,所得的遍历序列唯一,则可以唯一确定该图。

( )8.存储无向图的邻接矩阵是对称的,因此只要存储邻接矩阵上三角(或下三角)部分就可以了。

( )9.用邻接表法存储图时,占用的存储空间大小只与图中的边数有关,而与结点的个数无关。

(X)10.若从一个无向图中任一顶点出发,进行一次深度优先遍历,就可以访问图中所有的顶点,则该图一定是连通的。

( )11.二分查找法要求待查表的关键字值必须有序。

()12.对有序表而言,采用二分查找部总比采用顺序查找法速度快。

()13.在二叉排序树中,根结点的值都小于孩子结点的值。

()14.散列存储法的基本思想是由关键字的值决定数据的存储地址。

()15.哈希表是一种将关键字转换为存储地址的存储方法。

()16.选择好的哈希函数就可以避免冲突的发生。

()17.在有序的顺序表和有序的链表上,均可以采用二分查找来提高查找的速度。

()18.采用分块查找,既能实现线性表所希望的查找速度,又能适应动态变化的需要。

()19.哈希查找的效率主要取决于哈希表构造时选取的哈希函数和处理冲突的方法。

()20.在二叉排序树上删除一个结点时,不必移动其他结点,只要将该结点的父结点的相应指针域置空即可。

()二、填空题:1.图常用的存储方式有邻接矩阵和等。

2.图的遍历有和广度优先搜索等方法。

3.有n条边的无向图邻接矩阵中,1的个数是。

4.有向图的边也称为。

5.图的邻接矩阵表示法是表示之间相信关系的矩阵。

6.有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的。

数据结构习题集(积分)

数据结构习题集(积分)
C.j(j+1)/2+jD.j(j-1)/2+i—1
6.若将n阶下三角矩阵A,按列优先顺序压缩存放在一维数组F[n(n+1)/2]中,第一个非零元素a11,存于F[0]中,则应存放到F[K]中的非零元素aij(1≤j≤n,1≤j≤i)的下标i,i与K的对应关系是(6)。
(6):A.(2n-j+1)j/2+I-j B.(2n-j+2)(j-1)/2+i-j
(3):A.Loc(a[0][0]+[(i-1)*n+j-1]*d
B.Loc(a[0][0])+[i*n+j]*d
C.Loc(a[0][0]+[(j-1)*m+i]*d
D.Loc(a[0][0])+[j*m+i]*d
4.已知二维数组A[6][10],每个数组元素占4个存储单元,若按行优先顺序存放数组元素a[3][5]的存储地址是1000,则a[0][0]的存储地址是(4)。
第二章线性表
一、单项选择题
1.下面关于线性表叙述中,错误的 是_(1)_。
(1):A.顺序表必须占用一片地址连续的存储单元
B.链表不必占用一片地址连续的存储单元
C.顺序表可以随机存取任一元素
D.链表可以随机存取任一元素
2.在表长为n的单链表中,算法时间复杂度为O(n)的操作是(2)。
(2):A.查找单链表中第i个结点B.在p结点之后插入一个结点
(2)在p结点前插入s结点的语句序列是:
s->prior=p->prior;s->next=p;(13);(14)
(3)删除p结点的直接后继结点的语句序列是:
q=p->next;p->next=q->next;(15);free(q);

经典数据结构习题集含答案

经典数据结构习题集含答案

线性表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章绪论一、填空题1. 一个算法具有下列五个重要特性:、、、、。

2.根据数据元素之间的相互关系的不同特性,通常有如下的四种基本结构:、、、。

3. 数据结构是介于、和三者之间的一门核心课程。

4. 通常设计一个“好”的算法应该考虑达到如下的目标、、、。

5. 算法效率的度量同时采用时间复杂度和来度量。

第2章线性表一、填空题1. 一个双向的循环链表,设p->next指向其后继,p->prior指向其前驱。

若要删除指针p所指的结点,需要如下的指令实现:。

2.一个单向链表,设q=p->next 若要删除指针q所指的结点,需要如下的指令实现:。

3. 已知某单向链表中某结点的指针为p,p->next指向其下一个结点。

若希望在p之后插入一个结点q,则可采用如下的指令实现:。

4. 已知某双向循环链表中某结点的指针为p,p->next指向它的后继,p->prior指向它的前驱,p->data为该元素的值,其类型为字符型变量。

试采用C语言描述该双向链表的存储结构:若希望删除该结点,可采用如下的C语言程序段实现:5. 在一个长度为n的顺序表中删除第i个元素(0≤i≤n)时,需向前移动个元素。

6. 在一个具有n个结点的有序单链表中插入一个新的结点使得该链表仍然有序,其算法的时间复杂度为。

二、选择题1. 设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为:。

(A)p->next=p->next->next; (B)p=p->next;(C)p=p->next->next; (D)p->next=p;2.在长度为n的顺序表的第i(0≤i≤n)个位置上插入一个元素,元素的移动次数为( )。

A、 n-i+1B、n-iC、 iD、 i-1三、简答题1. 已知双向链表中某结点的指针为p,现希望在该结点之后插入结点q,请用图示和语言的形式描述插入该结点的过程。

数据结构习题集及答案

数据结构习题集及答案

第一章一、填空题1 数据元素是数据的基本单位,..数据项.......是具有独立含义的最小标识单位。

3 数据之间的关系(逻辑结构)有四种集合、线性结构、树形结构、网状结构或图状结构,可分为....................... ....、...................两大类。

4 数据的存储结构包括..顺序存储结构.....................、..链式存储结构..........................二、问答题1.什么是数据结构?什么是数据类型?答:数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等的学科。

数据类型是一个值的集合和定义在这个值集上的一组操作的总称。

2.叙述算法的定义与特性。

答:算法是对待定问题求解步骤的一种描述,他是指令的有限序列,其中每一条指令表示一个或多个操作。

一个算法具有以下5个重要特性:1)、有穷性 2)、确定性3)、可行性 4)、输入 5)、输出3. 叙述算法的时间复杂度。

答:算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时量度,记作T(n)=O(f(n))他表示随着问题规模n的增大,算法执行时间增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。

三、判断题(在各题后填写“√”或“×”)1. 线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。

(×)2.下列几种数量级从小到大的排列顺序为:O(1) 、O(logn)、O(n) 、O(nlogn) 、O(n2) 、O(n3 ) 、O(2n)。

(√)四、1.计算机执行下面的语句时,语句s的执行频度(重复执行的次数)为 _______ 。

FOR(i=l;i<n-l;i++)FOR(j=n;j>=i;j--)s;2.有下列运行时间函数:(1)T1 (n)=1000; (2)T2(n)=n2+1000n; (3)T3(n)=3n3+100n2+n+1;分别写出相应的大O表示的运算时间。

数据结构习题集

数据结构习题集

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的前趋__结点,才能实现该操作。

《数据结构》习题集:第2章_线性表

《数据结构》习题集:第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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
3.long sum2(int n)
{
long sum,w,i;
for(sum=0,w=1,i=1;i<=n;i++){ w=w×i; sum=sum+w;}
return(sum);
}
4.void sort(int r[ ],int n)
{
int i,j;
for(i=1; i<n;i++) for(j=0;j<n-i;j++)
2.数据结构进行形式化定义时,可以从逻辑上认为数据结构DS是_____数据元素的有限集____的集合D和D上____关系的有限集_____的集合R所构成的二元组:DS=(D,R)。
3.
4.一个算法的时间复杂度通常用问题规模大小的函数来表示,当一个算法的时间复杂度与问题规模n大小无关时,则表示为____O(1)______;成正比关系时,则表示为_____O(n)______;成对数关系时,则表示为____O(log2n)_______;成平方关系时,则表示为____O(n2)______。
5.E=(K,R),其中:K={1,2,3,4,5,6,7},R={r},r={<1,2>,<2,1>,<1,4>,<4,1>,<2,3>,<3,2>,<3,4>,<4,3>,<1,3>,<3,1>}。
三、指出下列各函数的功能并求出其时间复杂度。
1.void prime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++) if (n %i==0) break;
⑴p->rlink=s;s->llink=p;p->rlink->llink=s;s->rlink=p->rlink;
⑵s->llink=p;s->rlink=p->rlink;p->rlink=s;p->rlink->llink=s;
⑶p->rlink=s;p->rlink->llink=s;s->llink=p;s->rlink->p->rlink;
第一章绪论
一、填空题
1.数据是描述客观事物的数、字符以及所有能输入到计算机且能够被计算机程序加工处理的符号集合。____数据元素_____是数据的基本单位;____数据项_______是数据的最小单位。通常被计算机加工处理的数据不是孤立无关的,而是彼此之间存在着某种联系,将这种数据间的联系称为____结构____。
if(r[j]>r[j+1]) {temp=r[j];r[j]=r[j+1];r[j+1]=temp;}
}
第二章线性表
一、填空题
1.设长度为n的顺序线性表在任何位置上插入或删除操作都是等概率的,则插入一个元素时平均需要移动____n/2___个元素,删除一个元素时平均需要移动____(n-1)/2__个元素。
3.C=(K,R),其中:K={a,b,c,d,e },R={r},r={<a,b>,<b,c>,<c,d>,<d,e>,<e,f>,<a,d>,<c,f>}。
4.D=(K,R),其中:K={48,25,64,57,82,36,75},R={r1,r2},r1={<25,36>,<36,48>,<48,57>,<57,64>,<64,75>,<75,82>};r2={<48,25>,<48,64>,<64,57>,<64,82>,<25,36>,<25,75>}。
5.在一个顺序循环队列中为了方便入队列和出队列的操作通常约定头指针front指向实际队头元素的______前一个位置______,尾指针rear指向当前实际队尾元素的______所在位置______。若该顺序循环队列有m个存储单元,则队列满时共有_____m-1_____个元素。
7.设计在带有头结点的单向链表中删除值为X的结点算法。
第三章栈和队列
一、填空题
1.线性表、栈和队列从逻辑上来说都是_____线性_______结构。可以在线性表的___任意____位置插入和删除元素;对于栈只能在____栈顶______插入和删除元素;对于队列只能在______队尾_____插入元素和在_____队头____删除元素。
9.双向链表中每个结点含有两个指针域,其中一个指针域指向___前驱____结点,另一个指针域指向___后驱___结点。
10.在长度为n的线性表中顺序查找某个结点值为X的时间复杂度为______O(n)________。
二、选择题
1.在长度为n的顺序线性表中删除第i个元素(1<=i<=n),则需要向前移动的元素个数为(1)。
⑶p->llink->rlink=p->llink;p->rlink->llink=p->rlink;
⑷p->rlink->rlink=p->rlink;p->rlink->rlink=p->rlink;
9.线性表采用链式存储结构时,要求存储单元的地址(4)。
⑴必须是连续的⑵部分地址必须是连续的
⑶一定是不连续的⑷连续不连续都可以
10.常见的时间复杂度有常数阶O(1)、对数阶O(log2n)、线性阶O(n)、平方阶O(n2)、线性对数阶O(nlog2n)、立方阶O(n3)、指数阶O(2n)等等,这些数量阶之间的大小关系为___ O(1)<_ O(log2n)<_ O(n)<O(nlog2n)_<_ O(n2)<_ O(n3)<_ O(2n)_________________。
⑴n-i⑵n+1-i⑶n-1-i⑷i
2.建立一个长度为n的单链表的时间复杂度为(1)。
⑴O(n)⑵O(1)⑶O(n2)⑷((log2n)
3.设指针p指向单链表中的结点A,结点A的后继结点是结点B,则删除结点B的操作为(4)。
⑴p->next=p⑵p=p->next
⑶p=p->next->next⑷p->next=p->next->next
10.设head为单链表的头指针,则不带头结点的单链表为空的判定条件是(1)。
⑴head==NULL⑵head->next==NULL
⑶head->next==head⑷head!=NULL
11.设head为单链表的头指针,则带头结点的单链表为空的判定条件是(2)。
⑴head==NULL⑵head->next==NULL
2.栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈称为____先进后出______表;队列的插入和删除运算分别在队列的两端进行,进行插入的一端叫做_____队尾_____,进行删除的一端叫做______队头_____,先进队的元素必定先出队,所以又把队列称为______先进先出______表。
链式存储结构的类型定义:typedef struct node {int data; struct node *next;} lklist;
1.建立一个有n个结点的单链表,要求从尾部进行插入。
2.建立一个有n个结点的单链表,要求从头部进行插入。
3.用顺序存储结构实现线性表就地逆置算法,即在原表的存储空间内将线性表(a1,a2,……,an)逆置为(an,an-1,……,a1)。
⑷s->llink=p;s->rlink=p->rlink;p->rlink->llink=s;p->rlink=s;
8.指针p指向双向链表中的结点A,则删除结点A的操作是(1)。
⑴p->llink->rlink=p->rlink;p->rlink->llink=p->llink;
⑵p->rlink->llink=p->rlink;p->llink->llink=p->llink;
if (i>sqrt(n)) printf(“yes”); else printf(“no”);
}
2.long sum1(int n)
{
long sum,w,i;
for(sum=0,i=1;i<=n;i++){ w=1; for(j=1;j<=i;j++) w=w×i; sum=sum+w; }
return(sum);
2.在顺序线性表中插入一个元素时,插入位置开始后的所有元素均需要___向后_____移动一个位置。
3.在顺序线性表中删除一个元素时,被删除元素后的所有元素均需要_____向前_____移动一个位置。
4.线性表的链式存储结构中,元素之间的线性关系是通过结点中的____指针域____来实现的。
5.线性表的顺序存储结构中逻辑上相邻的元素,物理位置____一定______相邻;线性表的链式存储结构中逻辑上相邻的元素,物理位置_____不一定_______相邻。
7.树型结构的特点是:根结点没有__前驱______结点,其余每个结点有且仅有_____一个___个前驱结点;叶子结点_____无____后继结点,其余结点可以有___任意______个后继结点。
8.图型结构的特点是:每个结点可以有____任意_____个前驱结点和后继结点。
9.程序段for(i=1,s=0;s<n;i++)s=s+i;的时间复杂度为____O(n1/2)_______。
相关文档
最新文档