基本数据结构及其运算习题
数据结构与算法分析考试试题

数据结构与算法分析考试试题一、选择题(共 20 小题,每小题 3 分,共 60 分)1、在一个具有 n 个元素的顺序表中,查找一个元素的平均时间复杂度为()A O(n)B O(logn)C O(nlogn)D O(n²)2、以下数据结构中,哪一个不是线性结构()A 栈B 队列C 二叉树D 线性表3、一个栈的入栈序列是 1,2,3,4,5,则栈的不可能的出栈序列是()A 5,4,3,2,1B 4,5,3,2,1C 4,3,5,1,2D 1,2,3,4,54、若一棵二叉树的先序遍历序列为 ABCDEFG,中序遍历序列为CBDAEGF,则其后序遍历序列为()A CDBGFEAB CDBFGEAC CDBAGFED BCDAGFE5、具有 n 个顶点的无向完全图的边数为()A n(n 1)B n(n 1) / 2C n(n + 1) / 2D n²6、以下排序算法中,在最坏情况下时间复杂度不是O(n²)的是()A 冒泡排序B 选择排序C 插入排序D 快速排序7、在一个长度为 n 的顺序表中,删除第 i 个元素(1≤i≤n)时,需要向前移动()个元素。
A n iB iC n i + 1D n i 18、对于一个具有 n 个顶点和 e 条边的有向图,其邻接表表示中,所有顶点的边表中边的总数为()A eB 2eC e/2D n(e 1)9、以下关于哈夫曼树的描述,错误的是()A 哈夫曼树是带权路径长度最短的二叉树B 哈夫曼树中没有度为 1 的节点C 哈夫曼树中两个权值最小的节点一定是兄弟节点D 哈夫曼树中每个节点的权值等于其左右子树权值之和10、用邻接矩阵存储一个具有 n 个顶点的无向图时,矩阵的大小为()A nB n²C (n 1)²D (n + 1)²11、下列关于堆的描述,正确的是()A 大根堆中,每个节点的值都大于其左右子节点的值B 小根堆中,每个节点的值都小于其左右子节点的值C 堆一定是完全二叉树D 以上都对12、在一个具有 n 个单元的顺序存储的循环队列中,假定 front 和rear 分别为队头指针和队尾指针,则判断队满的条件是()A (rear + 1) % n == frontB (front + 1) % n == rearC rear == frontD rear == 013、已知一个图的邻接表如下所示,从顶点 1 出发,按深度优先搜索法进行遍历,则得到的一种可能的顶点序列为()|顶点|邻接顶点|||||1|2, 3||2|4, 5||3|5||4|6||5|6||6| |A 1, 2, 4, 6, 5, 3B 1, 2, 5, 3, 4, 6C 1, 2, 3, 5, 4, 6D 1, 3, 2, 4, 5, 614、对线性表进行二分查找时,要求线性表必须()A 以顺序方式存储,且元素按值有序排列B 以顺序方式存储,且元素按值无序排列C 以链式方式存储,且元素按值有序排列D 以链式方式存储,且元素按值无序排列15、以下算法的时间复杂度为 O(nlogn)的是()A 顺序查找B 折半查找C 冒泡排序D 归并排序16、若某链表最常用的操作是在最后一个节点之后插入一个节点和删除最后一个节点,则采用()存储方式最节省时间。
数据结构与算法习题集 习题集

数据结构习题集一、选择题1.在一个长度为n的顺序表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需向后移动B个元素。
A. n-1B. n-i+1C. n-i-1D. i2.在一个具有n个单元的顺序栈中,假定以地址低端作为栈底,以top作为栈顶指针,则当做退栈处理时,top变化为C。
A. top不变B. top=-n C. top=top-1 D. top=top+13.向顺序栈中压入元素时,是A。
A. 先存入元素,后移动栈顶指针B.先移动栈顶指针,后存入元素4.在一个顺序存储的循环队列中,队首指针指向队首元素的A。
A. 前一个位置B. 后一个位置C. 队首元素位置D. 队尾元素位置5.若进栈序列为1,2,3,4,进栈过程中可以出栈,则C不可能是一个出栈序列。
A. 3,4,2,1B. 2,4,3,1C. 1,4,2,3D. 3,2,1,46.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队空的条件是C。
A. front= =rear+1B. front+1= =rearC. front= =rearD. front= =07.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队满的条件是D。
A. rear % n= =frontB. (rear-1) % n= =frontC. (rear-1) % n= =rearD. (rear+1) % n= =front8.从一个具有n个节点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较D个结点。
A. nB. n/2C. (n-1)/2D. (n+1)/29.在一个单链表中,已知*q结点是*p结点的前驱结点,若在*q和*p之间插入*s结点,则执行C。
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;10.向一个栈项指针为hs的链栈中插入一个*s结点时,则执行C。
数据结构习题(有答案)

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)}
stack<int> S; //建立一个栈
while( N!=0) { // N非零
i=N%B ; //从低到高,依次求得各位
N=N/B;
S.push(i); }//各位入栈
while ( !S.StackEmpty()) { //栈不空
{ i= S.pop();
If (i>9) i=’A’+10-i;
{ stack S; //借助一个栈
int x;
cin>>x;
while (x) {
S.push(x);
cin>>x; }
sum=0;
cout<<sum;
while ( x=S.pop() ) {
sum+=x; cout<<sum; }
} //
10.简述以下算法的功能(栈和队列的元素类型均为int)。
while { p->next && j<i-1 } {
p=p->next; j++ ; }
if ( !p->next || j>i-1 ); //定位失败
throw“删除位置不合理”;
else { //定位成功,进行结点删除
q=p->next;
x=p>data;
《数据结构基础教程》习题及解答

《数据结构基础教程》习题及解答数据结构基础教程习题及解答第一章:数据结构简介1.1 什么是数据结构?数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,包括数据的逻辑结构、物理结构和数据元素之间的运算。
1.2 数据的逻辑结构有哪些?数据的逻辑结构包括线性结构、树形结构和图状结构。
1.3 数据的物理结构有哪些?数据的物理结构包括顺序存储结构和链式存储结构。
1.4 数据结构的主要目标是什么?数据结构的主要目标是提高数据的存储效率和运算效率。
第二章:线性表2.1 线性表的定义线性表是由n(≥0)个数据元素组成的有限序列。
线性表是一种常见的数据结构,常用的实现方式包括数组和链表。
2.2 线性表的顺序存储结构线性表的顺序存储结构是将线性表中的元素存储在连续的存储空间中,通过元素在内存中的物理位置来表示元素之间的关系。
2.3 线性表的链式存储结构线性表的链式存储结构是通过指针将线性表中的元素连接在一起,每个元素包括数据域和指针域。
2.4 线性表的基本操作包括初始化线性表、插入元素、删除元素、查找元素等。
第三章:栈与队列3.1 栈的定义与特性栈是一种具有后进先出特性的线性表,只允许在一端进行插入和删除操作,被称为栈顶。
3.2 栈的顺序存储结构和链式存储结构栈的顺序存储结构和链式存储结构与线性表的存储结构类似,不同之处在于栈只允许在一端进行插入和删除操作。
3.3 栈的应用栈在表达式求值、函数调用和递归等场景中有广泛应用。
3.4 队列的定义与特性队列是一种具有先进先出特性的线性表,允许在一端插入元素,在另一端删除元素。
3.5 队列的顺序存储结构和链式存储结构队列的顺序存储结构和链式存储结构与线性表的存储结构类似,不同之处在于队列允许在一端插入元素,在另一端删除元素。
3.6 队列的应用队列在模拟排队系统、操作系统进程调度等场景中有广泛应用。
第四章:树与二叉树4.1 树的基本概念树是由n(≥0)个节点组成的有限集合,其中有一个称为根节点,除了根节点之外的其余节点被分为m(m≥0)个互不相交的集合,每个集合本身又是一棵树。
数据结构习题及答案

数据结构习题及答案第1章算法一、选择题1.算法的时间复杂度是指()。
A)执行算法程序所需要的时间B)算法程序中的指令条数C)算法执行过程中所需要的基本运算次数D)算法程序的长度2.算法的空间复杂度是指()。
A)算法程序的长度B)算法程序所占的存储空间C)算法执行过程中所需要的存储空间D)算法程序中的指令条数3.下面()的时间复杂度最好(即执行时间最短)。
logn)O()O(n ) B)A2logn2 ) D)O(n)C)O(n24.下面累加求和程序段的时间复杂度为()。
int sum(int a[],int n){int i, s=0;for (i=0;i<n;i++)< p="">s+=a[i];return s;}logn ) )O(A)O(1 ) B22))O(nC)O(n ) D中的算法,c[][]相加的结果存放到b[][]n阶矩阵5.下面是将两个n阶矩阵a[][]与。
该算法的时间复杂度为()void matrixadd(int a[][],intb[][],c[][],int n){int i,j;for (i=0;i<n;i++)< p="">for(j=0;j<n;j++)< p="">c[i][j]=a[i][j]+b[i][j];}nlog) )O(1 ) B)O(A22) )O(nO( n ) DC)。
6.下面程序段的时间复杂度为() 1int i=0,s1=0,s2=0;while(i<n)< p="">{if(i%2)s1+=i;elses2+=i;i++;}nlog) O(A)O(1 ) B)22) )O(nC)O(n ) D )。
7.下面程序段的时间复杂度为(int prime(int n){int i=1;int x=(int)sqrt(n);while(i<=x){i++;if(n%i==0)break;}if(i>x)return 1;elsereturn 0;}nlog) O(O(1 ) BA))2n) O()CO(n ) D))下面程序段的时间复杂度为(8.int fun(int n){int i=1,s=1;while(s<n)< p="">{i++;s+=i;}return i;}nlog)O(n/2) BA))O(2 2n) )O(C)O(n ) D9.下面程序段的时间复杂度为()int i,j,m,n,a[][];for(i=0;i<m;i++)< p="">for(j=0;j<n;j++)< p="">a[i][j]=i*j;22) )O(nA)O(m) BO(m+n) )C)O(m*n ) D )10. 下面程序段的时间复杂度为(int sum1(int n){int i,p=1,s=0;for(i=1;i<=n;i++){p*=i;s=s+p;}return s;}nlog) )O(A)O(1 ) B22)O(n ) D)O(nC)二、填空题复杂度。
数据结构和算法习题及答案解析

第1章绪论习题1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
3.简述逻辑结构的四种基本关系并画出它们的关系图。
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.有序表 D. 链栈(6)以下数据结构中,()是非线性数据结构A.树B.字符串C.队D.栈6.试分析下面各程序段的时间复杂度。
(1)x=90; y=100;while(y>0)if(x>100){x=x-10;y--;}else x++;(2)for (i=0; i<n; i++)for (j=0; j<m; j++)a[i][j]=0;(3)s=0;for i=0; i<n; i++)for(j=0; j<n; j++)s+=B[i][j];sum=s;(4)i=1;while(i<=n)i=i*3;(5)x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;(6)x=n; //n>1y=0;while(x≥(y+1)* (y+1))y++;(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题(1)一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。
数据结构计算题及参考答案

数据结构计算题及参考答案数据结构计算题及参考答案数据结构是计算机科学中的重要概念,它用于组织和管理数据。
在计算机科学的学习过程中,我们经常会遇到一些与数据结构相关的计算题。
这些题目旨在帮助我们加深对数据结构的理解,并提高我们的编程能力。
在本文中,我将为大家提供一些常见的数据结构计算题及其参考答案。
1. 栈的应用题栈是一种具有后进先出(Last In First Out)特性的数据结构。
下面是一个栈的应用题:题目:使用栈判断一个字符串中的括号是否匹配。
解答:我们可以遍历字符串中的每个字符,如果遇到左括号,则将其入栈;如果遇到右括号,则判断栈顶元素是否为对应的左括号,如果是,则将栈顶元素出栈,继续遍历下一个字符;如果不是,则说明括号不匹配。
最后,如果栈为空,则说明字符串中的括号全部匹配,否则不匹配。
2. 队列的应用题队列是一种具有先进先出(First In First Out)特性的数据结构。
下面是一个队列的应用题:题目:使用队列模拟击鼓传花游戏。
解答:我们可以使用队列来模拟击鼓传花游戏。
首先,将所有参与游戏的人依次加入队列。
然后,从队列中取出第一个人,并将其加入队尾。
重复这个过程,直到传花的次数达到指定的次数。
最后,队列中的最后一个人即为被淘汰的人。
3. 链表的应用题链表是一种常见的动态数据结构,它可以在运行时动态分配内存。
下面是一个链表的应用题:题目:反转链表。
解答:我们可以使用迭代或递归的方式来反转链表。
迭代的方法是从链表头开始,依次将每个节点的指针方向反转。
递归的方法是先反转链表的子链表,然后将当前节点的指针指向前一个节点。
最后,将链表的头节点指向反转后的链表的头节点。
4. 树的应用题树是一种非常重要的数据结构,它具有层次结构和分支结构。
下面是一个树的应用题:题目:计算二叉树的深度。
解答:我们可以使用递归的方式来计算二叉树的深度。
对于一个二叉树,它的深度等于左子树的深度和右子树的深度中的较大值加1。
数据结构与算法经典例题

1、在二叉搜索树(BST)中,以下哪个遍历顺序会按从小到大的顺序访问所有节点?A. 前序遍历B. 中序遍历C. 后序遍历D. 层次遍历(答案:B)2、对于一个给定的无向图,以下哪种算法最适合找到从起点到终点的最短路径(假设所有边的权重都相等)?A. Dijkstra算法B. Bellman-Ford算法C. Floyd-Warshall算法D. 广度优先搜索(BFS)(答案:D)3、在哈希表中处理冲突的一种方法是链地址法(也称为拉链法),以下关于链地址法的说法错误的是:A. 每个哈希表槽位连接一个链表B. 当发生冲突时,新元素添加到对应槽位的链表末尾C. 链地址法不需要处理哈希函数的设计,因为冲突总是通过链表解决D. 查找、插入和删除操作的时间复杂度与链表的长度有关(答案:C)4、以下哪种数据结构最适合实现优先队列,且支持高效的插入和删除最小(或最大)元素操作?A. 数组B. 链表C. 二叉堆D. 平衡二叉搜索树(如AVL树)(答案:C)5、在快速排序算法中,选择哪个元素作为基准(pivot)对算法的效率有重要影响,以下哪种策略通常不是一个好的选择?A. 数组的第一个元素B. 数组的最后一个元素C. 数组中间的元素D. 随机选择一个元素(答案:视具体情况而定,但通常A、B在特定情况下可能不是最佳,如当数组已近排序时;然而,此题要求选一个“通常不是好选择”的,若必须选一个,可以认为A或B在未知数据分布时风险较高,答案可倾向A或B,这里选A作为示例)6、以下哪个不是图的遍历算法?A. 深度优先搜索(DFS)B. 广度优先搜索(BFS)C. A*搜索算法D. 拓扑排序(答案:D)7、在平衡二叉搜索树(如红黑树)中,以下哪个操作的时间复杂度不是O(log n)?A. 查找B. 插入C. 删除D. 计算树中所有节点的和(答案:D,因为计算所有节点和需要遍历整个树,时间复杂度为O(n))8、以下哪种情况最适合使用动态规划算法来解决?A. 查找无序数组中的最大值B. 对一组数进行排序C. 计算斐波那契数列的第n项D. 在已排序的数组中查找特定元素(答案:C)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章基本数据结构及其运算一、单项选择题1.数据的基本单位是( B )A.数据B.数据元素C.数据项D.数据结构2.在数据结构中,构成数据元素的最小单位称为(D)A.字符B.关键字C.数据元素D.数据项3.数据在计算机内的存储形式称为数据的( D )A.算法描述B.数据类型C.逻辑结构D.物理结构4.数据的逻辑结构可分为(C)A.顺序结构和链式结构B.简单结构和复杂结构C.线性结构和非线性结构D.动态结构和静态结构5.顺序表中的每个元素占m个字节,第一个元素的存储地址为LOC(1),则任意1个元素i的地址为( B )A.LOC(1)+i*m B.LOC(1)+(i-1)*mC.LCO(1)+(i+1)*m D.(i-1)*m 6.线性表若采用链表存储,其(D)A.所有结点的地址必须是连续的B.部分结点的地址必须是连续的C.所有结点的地址一定不连续D.所有结点的地址连续、不连续都可以7.线性表在采用链式存储时,其地址( C )A.必须是连续的B.一定是不连续的C.连续不连续都可以D.部分是连续的8.下列不属于线性结构的是( C )。
A.单链表B.队列C.二叉树D.数组9.链表不具有的特点是( A)A.可随机访问任一元素B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与线性表的长度成正比10.数据结构反映了数据元素之间的结构关系,链表是一种( D)。
A.顺序存储线性表B.非顺序存储非线性表C.顺序存储非线性表D.非顺序存储线性表11.在单链表表示的线性表中,可以从( A )。
A.第一个结点访问到所有结点B.某个结点访问到所有结点C.某个结点访问到该结点的所有前趋结点D.最后一个结点访问到所有结点12.在一个单链表中,已知指针q所指向的结点是指针p所指向的结点的前驱结点,若在指针q和p所指向的两个结点之间插入指针s指向的结点,则执行( C )。
A.s->link=p->link; p->link=s;B.p->link=s->link; s->link=p;C.q->link=s; s->link=p;D.p->link=s; s->link=q;13.长度为n的顺序存储的线性表,设在任何位置上删除一个元素的概率相等,则删除一个元素时平均要移动的元素个数是(A)A.(n-1)/2 B.n/2 C.n-1D.n+114.设长度大于1带头结点的循环单链表head的尾结点由rear 指向,则head和rear满足关系(B)A.rear->link= =NULLB.rear= =head->linkC..rear->link= =headD.rear= =head15.在链式存储的线性表中,插入一个元素时(D)A.需要移动元素和修改指针B.不需要移动元素和修改指针C.需要移动元素,但不需要修改指针D.不需要移动元素,但需要修改指针16.设循环队列中有m个单元,队列满的条件是( A ) A.rear=front B.(rear+1)%m=frontC.rear%m=front D.rear+1=front17.栈和队列都是( C)。
A.顺序存储的线性结构B.链式存储的线性结构C.限定存取点的线性结构D.限定存取点的非线性结构18.栈和队列( C )A.的共同点都是先进后出B.的共同点都是先进先出C.的共同点是只允许在端点处插入和删除元素D.没有共同点19.若一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素是(B)A.n-i B.n-i+1 C.i D.n-i-1 20.设栈初始为空,输入序列为:a,b,c,d。
经过入栈、入栈、出栈、入栈、出栈、入栈操作之后,栈中的元素(从栈底到栈顶)依次为( A )A.a,d B.a,c C.b,cD.d,a21.设栈初始为空,输入序列为:a,b,c。
经过入栈、出栈、入栈、入栈、出栈操作之后,从栈中输出的序列为( b ) A.a,b B.b,a C.a,c D.b,c22.栈结构通常采用的两种存储结构是( A ) A.顺序存储结构和链表存储结构B.链表存储结构和数组C.线性存储结构和非线性存储结构D.散列方式和索引方式23.有6个元素按6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列?( C)A.5,4,3,6,1,2 B.4,5,3,1,2,6C.3,4,6,5,2,1 D.2,3,4,1,5,624.设栈S最多能容纳4个元素,现有6个元素按a,b,c,d,e,f 顺序进栈,入栈、出栈操作可随时进行,可能的出栈序列是(C)A.e,b,c,d,a,f B.b,c,e,f,a,d C.c,b,e,d,a,fD.a,d,f,e,b,c25.一个队列的入队的序列是1,2,3,4,在入队操作的同时,随时有出队的操作,则能够实现的输出序列是(A)A.1234 B.1432 C.3241 D.4321 26.设队列初始为空,入队序列为:a,b,c,d。
经过入队、入队、出队、出队、入队、入队操作之后,队列中从队首至队尾的元素依次为(A)A.c,d B.b,a C.c,b D.a,b 27.二维数组A[10][20]采用行序为主方式存储,每个元素占一个存储单元,并且A[0][0]的存储地址是200,则A[6][l2]的地址是( C )A.315 B.326 C.332D.33828.稀疏矩阵一般的压缩存储方法有两种,即( C)。
A.二维数组和三维数组B.三元组和散列C.三元组和十字链表D.散列和十字链表29..若完全二叉树的某结点无左孩子结点,则( A ) A.它一定是叶子结点B.它可能有右孩子结点C.它一定是在最低层D.以上说法均不对30.设二叉树共有n个叶子结点,所有非叶子结点都有左右子树,则此二叉树共有的结点数是( D)A.2(n-1) B.2n+1 C.2n D.2n-131..二叉树与树是两个不同的概念,二叉树的根结点有( A)。
A.0个或1个B.0个或多个C.且仅有一个D.一个或一个以上32.深度为5的二叉树至多有( B )个结点。
A.30 B.31 C.32 D.63 33.一棵深度为k(k≥1)的完全二叉树,其结点个数至多为(2的k次方-1)A.2k-1-1 B.2k-1 C.2k-1 D.2k 34.深度为5的二叉树的结点最多有( C )A.10个B.16个C.31个D.32个35.具有n个结点的完全二叉树的深度为( D ) A.┌log2n┐B.[log2n] C.┌log2n┐+1D.[log2n]+136.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为( B)。
A.2h B.2h-1 C.2h+1 D.h+137.二叉树的第i(i≥1)层上结点个数至多有(2的i-1次方)A.2i-1-1 B.2i-1C.2i-1 D.2i38.具有65个结点的完全二叉树其深度为( C)(根的结点号为1)A.8 B.7 C. 6 D.539.已知某二叉树的后序遍历序列是d a b e c,中序遍历序列是d e b a c,则它的前序遍历序列是( C)A.a c b e d B.d e c a bC.c e d b a D.d e a b c40.在顺序表(3,6,8,10,12,15,16,21,25,30)中,用二分法查找值11,所需比较次数为( C )A.2 B.3 C. 4 D.541.树是由一个或多个结点组成的有序集合,它有( A )称为根(root)的结点。
A.0个或1个B.0个或多个C.且仅有1个D.1个或1个以上42.对长度为n的顺序表进行顺序查找,在等概率查找情况下,查找成功的平均查找长度为(B)A.(n-1)/2 B.n/2 C.(n+1)/2 D.n 43.散列函数处理冲突中的开地址法包含( B ) A.拉链法和线性探测法B.线性探测法和双重散列法C.拉链法和双重散列法D.拉链法和伪随机数法二、填空题1.从逻辑上抽象地反映__数据元素___之间的结构关系称为数据的逻辑结构。
2.把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的结构称为__数据的存储结构(也称数据的物理结构)_。
3.从逻辑上抽象地反映数据元素之间的结构关系,称之为数据的__数据的逻辑结构__。
4.顺序存储结构是把____相邻___的数据元素存储在物理上相邻的存储单元中。
5.在一个长度为n的顺序表中的第i(1≤i≤n)个元素之前插入一个元素时,需向后移动____n-i+1_______个元素。
6.在线性表的顺序存储结构中,设第一个元素的存储地址是1000,每个元素的长度为4,则第10个元素的地址是_____1000+(10-1)*4=1036________。
7.在线性表中,元素之间存在着线性逻辑关系,元素ai-1被称为元素ai的_____前件(前驱)_______。
8.设二维数组A,行下标的范围是1到6,列下标的范围是0到9,每个元素占有8个字节。
数组A所需的存储空间大小为_____480______个字节。
9.采用FIFO(先进先出)的线性表称为_____队列______。
10.不含任何数据元素的栈称为__空栈____。
11.栈的特点是___先进后出,后进先出____,队列的特点是___先进先出,后进后出____。
12.设有二维数组A[10][20],其每个元素占两个字节,数组以列序为主序存储,第一个元素的存储地址为100,那么元素A[7][7]的存储地址为______。
13.二维数组A[8][10]采用列序为主顺序存贮,每个数组元素占2个存储单元,且第1行,第1列的数据元素a[0][0]的存储地址是500,则a[6][8]的存贮地址是___ __。
14.数组A中的每个元素占4个字节,行下标i从0到8,列下标j从1到10,存储该数组至少需要____________个字节。
15.设一棵二叉树有10个度为2的结点,则该二叉树的叶子结点的个数为______11_______。
16.具有n(n≥2)个结点的二叉树采用二叉链表进行存储,在这2n个指针域中共有______个指针域是空的。
17.在一棵二叉树中,设度为0的结点个数为n0,度为2的结点个数为n2,则n0与n2的关系为n0=___n2+1_________。
三、简答题1.试举例说明数据的顺序存储结构。
2.分别画出3个结点的二叉树的所有不同形态。
3.一棵二叉树的先序、中序遍历序列分别如下,请构造出该二叉树。
先序——ABDGHECFIJ中序——GDHBEACIJF4.有一棵二叉树如下图所示,试写出该二叉树的先序遍历和后序遍历序列。