数据结构综合习题3
最新数据结构习题课3讲解学习
0 50 1 10 3 -30 1 20 3 -60 35
a[0] 0 0 50 a[1] 1 0 10 a[2] 1 2 20 a[3] 3 0 -30 a[4] 3 2 -60 a[5] 3 3 5
03 10 22 31
num
00 13 23 35
pos
0
TP3[处理三元组表]
3
FOR i ← 0 TO t-1 DO
20
A[4] 3
2
-60
A[5] 3 3
5
B[4] 2
3
-60
B[5] 3 3
5
算法的关键是求出A中元素在B中的位置
Bnubmer = 0
FOR i=0 TO Cols(A) DO
FOR j=0 TO t DO
IF col(A[j])=i Then
(row(B[Bnumber])=i
col(B[Bnumber])=row(A[j])
算法: TRANSPOSE(A. B)
TP1[初始化] /*声明A的转置矩阵B,使得B的行数等于 A的列数,B的列数等于A的行数,B中非 0元素的个数等于A中非0元素的个数*/ n←Rows(B)←Cols(A). Cols (B)←Rows(A). t←Count(B)← Count(A).
TP2
row(B[k]) ←col(A[i]).
val(B[k]) ← val(A[i]).
pos[p]← pos[p]+1 ).
a[0] 0 0 50 a[1] 1 0 10 a[2] 1 2 20 a[3] 3 0 -30 a[4] 3 2 -60 a[5] 3 3 5
0 0 50 0 1 10
2 1 20
数据结构(习题三)
从上图可以看出,查找失败的最少比较次数为 3,最多比较次数为 4 次,故而选择 B答案。要特别注意,有的书把失败的比较也算作一次 比较,这里我们不算一次比较。
第五部分
查找
考点四 二叉排序树
本考点主要考查:
二叉排序树的概念和构造方法
第五部分
查找
考点四 二叉排序树
1. 若构造一棵具有 n 个结点的二叉排序树,最坏的情况下其深度不超 过 ( B ) A. n/2 B. n C. (n+1)/2 D. n+1 【解析】 最坏的情况下, 二叉排序树为单支树, 比如构造一棵 {1,2,3,4,5,…,n}的二叉树,则得到的二叉排序树如下图所示。
D. ③
【解析】对于 m 阶 B 树,除了根结点至少要有两棵子树之外,其他非 叶子结点至少有⌈m/2⌉棵子树,故而①错误。树中,每个结点至多有 m-1 个关键字,而且所有叶子都在同一层上,故而②③显然正确。但 是,插入一个关键字使得 B 树结点分裂,并不一定会引起树长高一层 ,如第 2 题中插入结点 70, B-树的前后高度都是 2,故而④错误。
第五部分
查找
考点七 哈希表
1. 以下说法错误的是 ( B ) A. 散列法存储的思想是由关键字值决定数据的存储地址 B. 散列表的结点中只包含数据元素自身的信息,不包含指针。 C. 负载因子是散列表的一个重要参数,它反映了散列表的饱满程度。 D. 散列表的查找效率主要取决于散列表构造时选取的散列函数和处理 冲突的方法。
数据结构
习 题 三
第五部分
查找
考点一 查找的基本概念
本部分考查查找的基本概念。
第五部分
查找
考点一 查找的基本概念
1. 要进行线性查找,则线性表 (1) D ;要进行二分查找,则线性表 (2) E ;要进行散列查找,则线性表 (3) C 。某顺序存储的表格,其 中有 90000 个元素,已按关键项的值的上升顺序排列。现假定对各个 元素进行查找的概率是相同的,并且各个元素的关键项的值皆不相同 。当用顺序查找法查找时,平均比较次数约为 (4) C ,最大比较次数 为 (5) D 。
数据结构习题三(答案)
哈夫曼编码: a:11 b:101 c:010 d:1001 e:011 f:00 g:1000 2) 等长编码至少需要3 bit 哈夫曼编码WPL=0.31*2+0.16*3+0.10*3+0.08*4+0.11*3+0.20*2+0.04*4=2.61 压缩率=1-2.61/3=13% 4.程序设计题 1)创建一任意二叉树,统计某子树下值为奇数和偶数结点的个数。 #define INT #include"c1.h" #ifdef CHAR typedef char TElemType; TElemType Nil=' '; /* 字符型以空格符为空*/ #endif #ifdef INT typedef int TElemType; TElemType Nil=0; /* 整型以0为空*/ #endif #include"c6-2.h" #include"bo6-2.c" void GetLeafCounts(BiTree T,int *n,int *m) {
文档之家的所有文档均为用户上传分享文档之家仅负责分类整理如有任何问题可通过上方投诉通道反馈
数据结构习题三(答案)
数据结构习题(三) 学号________ 姓名_______ 课堂号(_________) 1.选择题 1)若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B )A.9 B.11 C.15 D.不确定 2)设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林 F对应的二叉树根结点的右子树上的结点个数是( D ) A.M1 B.M1+M2 C.M3 D.M2+M3 3)二叉树的第I层上最多含有结点数为( C ) A.2I B. 2I-1-1 C. 2I-1 D.2I -1 4)在一棵高度为k的满二叉树中,结点总数为( C ) A.2k-1 B.2k C.2k-1 D.?log2k?+1 5)利用二叉链表存储树,则根结点的右指针是( C )。 A.指向最左孩子 B.指向最右孩子 C.空 D.非空 6)已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果 为( A )。 A.CBEFDA B. FEDCBA C. CBEDFA D.不定 7)n个结点的线索二叉树上含有的线索数为( C ) A.2n B.n-l C.n+l D.n 8)由3 个结点可以构造出多少种不同的二叉树?( D ) A.2 B.3 C.4 D.5 9)某二叉树中序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E。二叉树对应的森林 包括多少棵树( B ) A.l B.2 C.3 D.概念上是错误的 10)设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针 域为空的结点有( C )个。 A. n-1 B.n C. n+1 D. n+2 11)下面几个符号串编码集合中,不是前缀编码的是( B )。 A.{0,10,110,1111} B.{11,10,001,101,0001} C.{00,010,0110,1000} D.{b,c,aa,ac,aba,abb,abc} 2.填空题 12)树在计算机内的表示方式有__双亲表示法_,___孩子表示法___,___孩子兄弟表示法/ 二叉链表表示法_____。 13)在二叉树中,指针p所指结点为叶子结点的条件是_p->lchild==NULL && p->rchild==NULL________________。
数据结构习题集:第3章栈和队列
一、选择题
1.栈结构通常采用的两种存储结构是(A)。
A、顺序存储结构和链表存储结构B、散列和索引方式
C、链表存储结构和数组D、线性链表结构和非线性存储结构
2.设栈ST用顺序存储结构表示,则栈ST为空的条件是(B)
A、ST.top-ST.base<>0B、ST.top-ST.base==0
5.在对链队列(带素个数为rear-front。
7.一个栈的输入序列是1,2,3,4,则在栈的输出序列中可以得到4,3,1,2。
8.一个栈的输入序列是1,2,3,4,则在栈的输出序列中可以得到1,2,3,4。
9.若以链表作为栈的存储结构,则进栈需要判断栈是否满。
图3.1
21.链栈和顺序栈相比,有一个比较明显的优势是()
A、通常不会出现栈满的情况B、通常不会出现栈空的情况
C、插入操作更容易实现D、删除操作更加容易实现
22.若一个栈的输入序列是1,2,3,4,…,n,输出序列的第一个元素是n,则第i个输出元素是(C)
A、不确定B、n-iC、n-i+1D、n-i-1
A、Q.rear=Q.front->next;B、Q.rear->next=Q.rear->next->next;
C、Q.front->next=Q.front->next->next;D、Q.front=Q.rear->next;
15.用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()
A、仅修改队头指针B、仅修改队尾指针
C、队头尾指针都要修改D、队头尾指针都可能要修改。
16.栈和队列的共同点是()
数据结构综合练习及参考答案
《数据结构》(01111、01211)作业题(一)一、判断题(下列各题,你认为正确的,请在前面的括号内打√,错误的打×。
每题1分,共10分)1、(√)2、(√)3、(√)4、(√)5、(√)6、(╳)7、(√)8、(√)9、(╳)10、(√)(√)1. 数据的存贮结构是数据的逻辑结构的存贮映象。
(√)2. 用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。
(√)3. 非线性结构中,至少存在一个元素不止一个直接前趋或不止一个直接后继。
(√)4. 树的最大特点是层次结构。
(√)5. 队列的特点是先进先出。
(╳)6. 图的最小生成树是唯一的。
(√)7. 线性表是广义表的特殊形式。
(√)8. 后序序列和中序序列能唯一确定一棵二叉树。
(╳)9. 散列表是一种链式存贮结构。
(√)10. 快速排序并非在任何情况下都比其它排序方法速度快。
二、填空题(每空2分,共20分)1.数据的存贮结构的四种形式为存贮、存贮、存贮和存贮。
2.所有插入和删除都在表的一端进行的线性表称为。
3.n个结点的完全二叉树,其深度h= 。
4.对于顺序循环队列Q[M],下标从0到M-1,头尾指针分别为F和R,入队时,队尾指针循环加1可表示为R= 。
5.散列法既是一种查找方法,又是一种方法。
6.n个顶点的有向完全图具有条弧。
7.n个元素的顺序查找的平均查找长度为。
三、单选题(本题的每一备选答案中,只有一个是正确的,请把你认为正确的答案的题号填入题干的括号内,多选不给分,每小题3分,共15分)。
1.若进栈序列为1,2,3,4,则不可能得到的出栈序列是()(1)3,2,1,4 (2)3,2,4,1 (3)4,2,3,1 (4) 2,3,4,12.对于下列二叉树,其后序序列为()(1)ABDECFG (2)DBEAFCG (3)DEBFGCA (4)GFCEBDA3.对于下列AOV网,不能出现的拓扑序列为()(1)1 2 3 4 5 (2)1 2 4 3 5 (3)2 4 1 3 5 (4)2 1 4 3 5AB C DEFG题三2图13542题三、3图4.深度为k 的完全二叉树所含叶结点的个数最多为 ( ) (1)2k (2) 2k-1 (3) k (4) 2k 5.衡量查找算法效率的主要标准是 ( ) (1) 元素个数 (2) 所需的存贮量 (3) 平均查找长度 (4) 算法难易程度 四、应用题(25分)1.将下列森林转化为二叉树。
数据结构练习题第三章栈、队列和数组习题及答案
第三章栈、队列和数组一、名词解释:1.栈、栈顶、栈底、栈顶元素、空栈2.顺序栈3.链栈4.递归5.队列、队尾、队头6.顺序队7.循环队8.队满9.链队10.随机存储结构11.特殊矩阵12.稀疏矩阵13.对称方阵14.上(下)三角矩阵二、填空题:1.栈修改的原则是_________或称________,因此,栈又称为________线性表。
在栈顶进行插入运算,被称为________或________,在栈顶进行删除运算,被称为________或________。
2.栈的基本运算至少应包括________、________、________、________、________五种。
3.对于顺序栈,若栈顶下标值top=0,此时,如果作退栈运算,则产生“________”。
4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会发生“________”。
5.一般地,栈和线性表类似有两种实现方法,即________实现和________实现。
6.top=0表示________,此时作退栈运算,则产生“________”;top=sqstack_maxsize-1表示________,此时作进栈运算,则产生“________”。
7.以下运算实现在顺序栈上的初始化,请在________处用适当的句子予以填充。
int InitStack(SqStackTp *sq){ ________;return(1);}8.以下运算实现在顺序栈上的进栈,请在________处用适当的语句予以填充。
Int Push(SqStackTp *sq,DataType x){ if(sp->top==sqstack_maxsize-1}{error(“栈满”);return(0);}else{________________:________________=x;return(1);}}9.以下运算实现在顺序栈上的退栈,请在________________用适当句子予以填充。
数据结构练综合练习及答案
综合练习题一一、简答题1、简述算法及其特性和其复杂性的度量标准。
2、简述数据的逻辑结构的种类。
3、简述排序算法的稳定性并列举三种以上稳定的排序算法。
4、简述在顺序表的第i个元素的位置上插入数据x的算法思想。
5、已知完全二叉树有80个结点,试问其深度及度为2的结点数目。
6、简述算法的基本概念及其分析的主要内容7、简述堆栈和队列的运算特性。
8、堆栈的入栈序列为a,b,c,d,e 问可否得到相应的出栈序列abcde和edcba9、简述在顺序表的第i个元素的位置上删除数据x的算法思想。
二、分析计算题1、计算下列算法中带@记号的语句的频度及算法的时间复杂度。
(1)s=0;for (i=0; i<n; i++)for (j=0; j<n; j++)s+=i+j; @(2)for (i=1; i<n; i++)for(j=n;j>=i;j--)sum+=2; @(3)i=1;while (i<=n)i=i*3; @2、请给出下图所示的二叉树的先序遍历、中序遍历和后序遍历的结果。
3、已知某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,试确定该二叉树的具体形态,并写出其后序遍历结果。
4、有七个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为叶子结点构造一棵霍夫曼树,并计算出带权路径长度WPL和相应结点的霍夫曼编码。
5、试给出下图所示的无向图的深度优先遍历和广度优先遍历的结果。
6、试给出下图所示的有向图的邻接表存储结构。
7、下图所示的矩阵是一个无向网。
请(1)设计该无向网的邻接矩阵(2)求出该网的所有最小生成树。
8、设哈希表的长度m=13,哈希函数为H(K)=K mod11,给定的关键码序列为19,14,01,68,20,84,27,55,11,29,33,35。
试画出用线性探测法解决冲突时所构造的哈希表并计算在等概率下搜索成功的平均搜索长度。
国家开放大学《数据结构(本)》综合练习题参考答案
A. 111,113,115,117 B. 117,115,111,113 C. 117,115,113,111 D. 113,111,117,115 11.图状结构中数据元素的位置之间存在( )的关系。 A. 每一个元素都有一个且只有一个直接前驱和一个直接后继 B. 多对多 C. 一对一 D. 一对一 12.以下说法正确的是( )。 A. 栈和队列的特点都是后进后出 B. 队列的特点是先进后出 C. 栈的特点是先进先出 D. 栈的特点是先进后出 13.一个单链表中,在 p 所指结点之后插入一个 s 所指的结点时,可执行: s->next=p->next;和( )。 A. s=p->next; B. p=s->next;
国家开放大学《数据结构(本)》综合练习题参考答案
一、填空题 1.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行的稀疏矩阵 A 共有 97 个零元素,其相应的三元组表共有 3 个元素。该矩阵 A 有(10)列。 2.结构中的数据元素存在多对多的关系称为(图状)结构。 3.在单向链表中,q 指向 p 所指结点的直接后继结点,要删除 q 所指结点,可以 用操作(p->next;)= q->next;。 4.n 个元素进行冒泡法排序,第 j 趟冒泡要进行(n-j)次元素间的比较。 5.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行 下标、列下标和(数组元素)三项信息。 6.中序遍历(二叉排序树)树可得到一个有序序列。 7.队列的操作特点是后进(后出)。 8.待排序的序列为 8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两 趟选择后,结果序列为(1,2,4,8,3,5,9)。 9.n 个元素进行冒泡法排序,通常需要进行(n-1)趟冒泡。 10.广义表((a,b),d,e((i,j),k))的长度是(4) 。 11.中序遍历二叉排序树可得到一个(有序)的序列。 12.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 13.广义表(c,a,(a,b),d,e,((i,j),k))的长度是(6)。 14.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行 10 列的稀疏矩阵 A 共有 95 个零元素,其相应的三元组表共有(5)个元素。 15.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 16.在对一组记录(50,49,97,22,16,73,65,47,88)进行直接插入排序 时,当把第 7 个记录 65 插入到有序表时,为寻找插入位置需比较(3)次。 17. 循 环 队 列 在 规 定 少 用 一 个 存 储 空 间 的 情 况 下 , 队 空 的 判 定 条 件 为 (front==rear)。 18.一棵有 5 个叶结点的哈夫曼树,该树中总共有(9)个结点。 19.c 语言中,字符串“E”存储时占(2)个字节。
数据结构练习题 第三章 栈、队列和数组 习题及答案
第三章栈、队列和数组一、名词解释:1.栈、栈顶、栈底、栈顶元素、空栈2.顺序栈3.链栈4.递归5.队列、队尾、队头6.顺序队7.循环队8.队满9.链队10.随机存储结构11.特殊矩阵12.稀疏矩阵13.对称方阵14.上(下)三角矩阵二、填空题:1.栈修改的原则是_________或称________,因此,栈又称为________线性表。
在栈顶进行插入运算,被称为________或________,在栈顶进行删除运算,被称为________或________。
2.栈的基本运算至少应包括________、________、________、________、________五种。
3.对于顺序栈,若栈顶下标值top=0,此时,如果作退栈运算,则产生“________”。
4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会发生“________”。
5.一般地,栈和线性表类似有两种实现方法,即________实现和________实现。
6.top=0表示________,此时作退栈运算,则产生“________”;top=sqstack_maxsize-1表示________,此时作进栈运算,则产生“________”。
7.以下运算实现在顺序栈上的初始化,请在________处用适当的句子予以填充。
int InitStack(SqStackTp *sq){ ________;return(1);}8.以下运算实现在顺序栈上的进栈,请在________处用适当的语句予以填充。
Int Push(SqStackTp *sq,DataType x){ if(sp->top==sqstack_maxsize-1}{error(“栈满”);return(0);}else{________________:________________=x;return(1);}}9.以下运算实现在顺序栈上的退栈,请在________________用适当句子予以填充。
数据结构习题第3章
第3章栈和队列一、选择题1. 栈中元素的进出原则是( )A.先进先出B.后进先出C.栈空则进D.栈满则出2. 已知一个栈的进栈序列为1, 2, …, n,其输出序列是p1, p2, … , p n ,若p1=n,则p i=()A. iB. n-iC. n-i+1D.不确定3. 一个栈的输入序列为:a b c d e,则下列不可能是栈的输出序列的是()。
A. b c d a eB. e d a c bC. b c a d eD. a e d c b4. 判定一个栈ST(最多元素为m0)为空的条件是( )A.ST->top<>0 B.ST->top=0 C.ST->top<>m0 D.ST->top=m0 5. 判定一个队列QU(最多元素为m0)为满队列的条件是( )A.QU->rear -QU->front = = m0 B.QU->rear -QU->front -1= = m0 C.QU->front = = QU->rear D.QU->front = = QU->rear+16.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为( )A. r-fB.(n+f-r)% nC.n+r-fD.(n+r-f)% n7. 栈和队列的共同点是()。
A. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点8. 用单链表表示的链式队列的队头在链表的()位置。
A.表头B.表尾C.中间9. 设计一个判别表达式中左,右括号是否配对出现的算法,采用()结构最佳。
A.线性表的顺序存储结构 B. 队列C. 线性表的链式存储结构D. 栈10. 用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时( )。
数据结构习题及答案(3)
数据结构习题及答案(3)第九章排序⼀、选择题1.在所有排序⽅法中,关键字⽐较的次数与记录得初始排列次序⽆关的是()(A)希尔排序(B)起泡排序(C)插⼊排序(D)选择排序参考答案:D2.设有1000个⽆序的元素,希望⽤最快的速度挑选出其中前10个最⼤的元素,最好()排序法。
(A)起泡排序(B)快速排序(C)堆排序(D)基数排序参考答案:C3.在待排序的元素序列基本有序的前提下,效率最⾼的排序⽅法是()(A)插⼊排序(B)选择排序(C)快速排序(D)归并排序参考答案:A4.⼀组记录的排序码为(46,79,56,38,40,84),则利⽤堆排序的⽅法建⽴的初始推为()。
(A)79,46,56,38,40,80 (B)84,79,56,38,40,46(C)84,79,56,46,40,38 (D)84,56,79,40,46,38参考答案:B5.⼀组记录的关键码为(46,79,56,38,40,84),则利⽤快速排序的⽅法,以第⼀个记录为基准得到的⼀次划分结果为()。
(A)38,40,46,56,79,84(B)40,38,46,79,56,84(C)40,38,46,56,79,84(D)40,38,46,84,56,79参考答案:C6.⼀组记录的排序码为(25,48,16,35,79,82,23,40,36,72),其中含有5个长度为2的有序表,按归并排序的⽅法对该序列进⾏⼀趟归并后的结果为()。
(A)16,25,35,48,23,40,79,82,36,72(B)16,25,35,48,79,82,23,36,40,72(C)16,25,48,35,79,82,23,36,40,72(D)16,25,35,48,79,23,36,40,72,82参考答案:A7.排序⽅法中,从未排序序列中依次取出元素与⼰排序序列(初始时为空)中的元素进⾏⽐较,将其放⼊⼰排序序列的正确位置上的⽅法,称为()(A)希尔排序(B)起泡排序(C)插⼊排序(D)选择排序参考答案:C8.排序⽅法中,从未排序序列中挑选元素并将其依次放⼊⼰排序序列(初始为空)的⼀端的⽅法,称为()(A)希尔排序(B)归并排序(C)插⼊排序(D)选择排序参考答案:D9.⽤某种排序⽅法对线性表(25,84,21,47,15,27,68,35,20)进⾏排序时,元素序列的变化情况如下:(1)25,84,21,47,15,27,68,35,20 (2)20,15,21,25,47,27,68,35,84(3)15,20,21,25,35,27,47,68,84 (4)15,20,21,25,27,35,47,68,845则所采⽤的排序⽅法是()。
(完整版)数据结构试题及答案
数据结构试卷(一)王彬一、单选题(每题2 分,共20分)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进制表示。
cA.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-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.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( c d)个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:____ ____、________、________和_______。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
数据结构综合习题集(含答案)
... 数据结构习题集一、选择题一、选择题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.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。
数据结构习题 3
第6章树6.1选择题1.一棵具有n个结点的完全二叉树的树高度(深度)是()A)⎣log2n⎦+1 B)log2n +1 C)⎣ log2n ⎦D)log2n-12.有关二叉树下列说法正确的是()A)二叉树的度为2 B)一棵二叉树的度可以小于2C)二叉树中至少有一个结点的度为2 D)二叉树中任何一个结点的度都为23.二叉树的第I层上最多含有结点数为()A)2I B)2I-1-1 C)2I-1 D)2I-14.具有10个叶结点的二叉树中有()个度为2的结点A)8 B)9 C)10 D)115.在下述结论中,正确的是()①只有一个结点的二叉树的度为0;②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A)①②③B)②③④C)②④D)①④6.由3 个结点可以构造出多少种不同的二叉树?()A)2 B)3 C)4 D)57.引入二叉线索树的目的是()A)加快查找结点的前驱或后继的速度B)为了能在二叉树中方便的进行插入与删除C)为了能方便的找到双亲D)使二叉树的遍历结果惟一8.有n个叶子的哈夫曼树的结点总数为()A)不确定B)2n C)2n+1 D)2n-19.一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足()A)所有的结点均无左孩子B)所有的结点均无右孩子C)只有一个叶子结点D)是任意一棵二叉树10.一棵完全二叉树上有1001个结点,其中叶子结点的个数是()A)250 B)500 C)505 D)以上答案都不对11.已知一棵二叉树的后序遍历序列为DABEC,中序遍历序列为DEBAC,则它的先序遍历序列为()A)ACBED B)DECAB C)DEABC D)CEDBA12.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A)9 B)11 C)15 D)不确定13.利用二叉链表存储树时,根结点的右指针是()A)指向最左孩子B)指向最右孩子C)空D)非空14.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。
北邮C++数据结构课后习题 习题3参考答案
习题31.填空题(部分答案)(1)栈的进出原则是(___________),队列的进出原则是(___________)。
答案:后进先出(LIFO)先进先出(FIFO)(2)设32位计算机系统中,空栈S存储int型数据,栈顶指针为1024H。
经过操作序列push(1),push(2),pop,push(5),push(7),pop,push(6)之后,栈顶元素为(___________),栈底元素为(___________),栈的高度为(___________),输出序列是(___________),栈顶指针为(___________)H。
答案:6 1 3 2,7 1030(3)两栈共享存储空间,其数组大小为100,数组下标从0开始。
top1和top2分别为栈1和栈2的栈顶元素下标,则栈1为空的条件为(___________),栈2为空的条件为(___________),栈1或栈2满的条件为(___________)。
答案:top1==-1 top2==100 top1+1==top2(4)一个队列的入队顺序是1234,则队列的输出顺序是(___________)。
答案:1234(5)设循环队列数组大小为100,队头指针为front,队尾指针为rear;约定front指向队头元素的前一个位置,该位置永远不存放数据。
则入队操作时,修改rear=(___________),出队操作修改front=(___________),队空的判别条件为(___________),队满的判别条件为(___________)。
若front=20,rear=60,则队列长度为(___________),若front=60,rear=20,则队列长度为(___________)。
答案:(rear+1)%100 (front+1)%100 rear==front (rear+1)%100=front 40 60(6)朴素模式匹配算法中,每个串的起始下标均为1,变量i=100,j=10,分别表示主串和模式串当前比较的字符元素下标,若本次比较两字符不同,则i回溯为(___________),j 回溯为(___________)。
数据结构-习题三数据结构综合练习
练习1.内存中一片连续空间(不妨假设地址从1到m),提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。
2.叙述前序和中序遍历二叉树的步骤;一棵前序序列为1,2,3,4的二叉树,其中序序列可能是4,1,2,3吗?设一棵二叉树的前序序列为1,2,3,4,5,6,7,8,9,其中序序列为2,3,1,5,4,7,8,6,9,试画出该二叉树。
3.设有一个关键码的输入序列{ 55, 31, 11, 37, 46, 73, 63 },(1) 从空树开始构造平衡二叉搜索树, 画出每加入一个新结点时二叉树的形态。
若发生不平衡, 指明需做的平衡旋转的类型及平衡旋转的结果。
(2) 计算该平衡二叉搜索树在等概率下的查找成功的平均查找长度。
4.设散列表为HT[0..12],即表的大小为m=13。
现采用双散列法解决冲突。
散列函数和再散列函数分别为:H0(key)=key%13; 注:%是求余数运算(=mod)H i=(H i-1+REV(key+1)%11+1)%13; i=1,2,3,…,m-1、其中,函数REV(x)表示颠倒10进制数x的各位,如REV(37)=73,REV(7)=7等。
若插入的关键码序列为{2,8,31,20,19,18,53,27}。
(1)试画出插入这8个关键码后的散列表。
(2)计算搜索成功的平均搜索长度ASL。
5.下图表示一个地区的通讯网,边表示城市间的通讯线路,边上的权表示架设线路花费的代价,如何选择能沟通每个城市且总代价最省的n-1条线路,画出所有可能的选择。
6.给出一组关键字:29,18,25,47,58,12,51,10,分别写出按下列各种排序方法进行排序时的变化过程:(1)归并排序每归并一次书写一个次序。
(2)快速排序每划分一次书写一个次序。
(3)堆排序先建成一个最大堆,然后每从堆顶取下一个元素后,将堆调整一次。
7.假设用于通讯的电文由5个字母组成,A B C D E F ,字母在电文中的出现频率分别为0.09,0.12,0.07,0.22,0.23,0.27,画出哈夫曼树,并写出各个字符的哈夫曼编码。
数据结构第三章习题
数据结构第三章习题3.1 单项选择题2.一个栈的入栈序列a, b, c, d, e, 则栈的不可能的输出序列是。
A. edcbaB. DecbaC. DceabD. abcde3. 若已知一个栈的入栈序列是1,2,3,………..n, 其输出序列为p1, p2, p3,……,pn, 若p1=n, 则pi为。
A.i.B. n=IC. n- i+1D.不确定4.栈结构通常采用的两种存储结构是。
A. 顺序存储结构和链表存储结构B. 散链方式和索引方式C.链表存储结构和数组D. 线性存储结构和非线性存储结构5.判定一个栈ST(最多元素为m0)为空的条件是。
A. ST->top<>0B. ST->top=0C.ST->top<>m0D.ST->top=m06.判定一个栈ST(最多元素为m0)为栈满的条件是。
A. ST->top!=0B.ST->top==0C.ST->top!=m0D.ST->top==m07.栈的特点是,队列的特点是。
A先进先出 B. 先进后出8. 一个队列的入栈序列是1,2,3,4,则队列的输出序列是。
A. 4,3,2,1B. 1,2,3,4C. 1,4,3,2D. 3,2,4,19. 判定一个队列QU(最多元素为m0)为空的条件是。
A.QU->rear- QU->front==m0B.QU->rear- QU->front-1==m0C.QU->front== QU->rearD. QU->front== QU->rear+110.判定一个队列QU(最多元素为m0)为满队列的条件是。
A.QU->rear- QU->front==m0B.QU->rear- QU->front-1==m0C.QU->front== QU->rearD.QU->front== QU->rear+111. 判定一个循环队列QU(最多元素为m0)为空的条件是。
数据结构复习题3
数据结构练习题第一章绪论一.选择题1、在数据结构的讨论中把数据结构从逻辑上分为()。
A.内部结构与外部结构B.静态结构与动态结构C.线性结构与非线性结构D.紧凑结构与非紧凑结构2、采用线性链表表示一个向量时,要求占用的存储空间地址()。
A: 必须是连续的 B 部分地址必须是连续的C: 一定是不连续的C: 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。
A: n B: n/2 C: (n-1)/2 D: (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。
A: s→next = p→next;p→next = s; B: p→next= s; s→next = q;C: p→next = s→next;s→next = p;D: q→next= s;s→next= p;8.下面程序段的时间复杂度为____________。
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)9.执行下面程序段时,执行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)/2二.填空题1.通常,评价一个算法有正确性、健壮性、_________、时间复杂度、空间复杂度五个方面。
2.在数据结构中,数据的逻辑结构有线性结构、图结构、________________、_______________四种,物理实现上有顺序结构、索引结构、___________、_____________四种。
第三章线性表一.选择题1.在一个单链表HL中,若要向q所指结点之后插入一个指针p指向的结点,则执行.A. HL=p; p->next=HLB. P->next=HL; HL=pC. P->next=q->next; q->next=pD. P->next=q->next; q=p->next2.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移个元素。
《数据结构》习题汇编03 第三章 栈和队列 试题
第三章栈和队列试题一、单项选择题1.栈的插入和删除操作在()进行。
A. 栈顶B. 栈底C. 任意位置D. 指定位置2.当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时,首先应执行()语句修改top指针。
A. top++;B. top--;C. top = 0;D. top;3.若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。
A. 3, 2, 1B. 2, 1, 3C. 3, 1, 2D. 1, 3, 24.在一个顺序存储的循环队列中,队头指针指向队头元素的()位置。
A. 前一个B. 后一个C. 当前D. 后面5.当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为()。
A. n-2B. n-1C. nD. n+16.从一个顺序存储的循环队列中删除一个元素时,需要()。
A. 队头指针加一B. 队头指针减一C. 取出队头指针所指的元素D. 取出队尾指针所指的元素7.假定一个顺序存储的循环队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。
A. front+1 == rearB. rear+1 == frontC. front == 0D. front == rear8.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。
A. front == rearB. front != NULLC. rear != NULLD. front == NULL9.设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。
若想在链式栈的栈顶插入一个由指针s所指的结点,则应执行操作()。
A. top->link = s;B.s->link = top->link; top->link = s;C. s->link = top; top = s;D. s->link = top; top = top->link;10.设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。
数据结构综合练习题及答案.doc
数据结构(一)一、选择题1.组成数据的基本单位是(C )。
(A)数据项(B)数据类型(C)数据元素(D)数据变最2.设数据结构A=(D, R),其中D={1, 2, 3, 4}, R={r}, r={<l, 2>, <2, 3>, <3, 4>, <4, 1>},则数据结构人是(C )o(A)线性结构(B)树型结构(C)图型结构(D)集合3、数组的逻辑结构不同于下列(D )的逻辑结构。
(A)线性表(B)栈(C)队列(D)树4、二叉树中第i (i$l)层上的结点数最多有(C )个。
(A) 2i (B) 21(C) 2i_1(D) 2i-l5、设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(A )。
(A) p->next=p-〉next-〉next (B) p=p->next(C) p二p->next->next (D) p->next=p6、设栈S和队列Q的初始状态为空,元素El、E2、E3、E4、E5和E6依次通过栈S, —个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是(C )。
(A) 6 (B) 4 (C) 3 (D) 27、将10阶对称矩阵压缩存储到一维数组A屮,则数组A的长度最少为(C )0(A) 100 (B) 40 (C) 55 (D) 808、设结点A冇3个兄弟结点H.结点B为结点A的双亲结点,则结点B的度数数为(B )。
(A) 3 (B) 4 (0 5 (D) 19、根据二义树的定义可知二义树共有(B )种不同的形态。
(A) 4 (B) 5 (0 6 (D) 710、设有以下四种排序方法,则(B )的空间复杂度最人。
(A)冒泡排序(B)快速排序(C)堆排序(D)希尔排序11、以下说法正确的是(A )A.连通图的牛成树,是该连通图的一个极小连通子图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
07级综合习题3
一. 单选题
1. 若线性表最常用的操作是插入和删除一个元素,宜采用( )。
A .顺序存储 B. 链式存储 C. 索引存储 D. 散列存储
2. 链表不具有的特点是( )。
A .可以随机访问任何一个元素
B .所需空间与线性表的长度成正比
C .不必事先估计存储空间
D .插入删除不需要移动元素
3. 在高度为h 的严格二叉树(即无1度结点的二叉树)中,结点总数n 满足( )。
A.1212-≤≤-h n h
B.12121-≤≤++h n h
C.1212-≤≤+h n h
D.1221-≤≤-h h n
4.当各弧上的权值( )时,广度优先搜索算法可用来解决单源最短路径问题。
A.不一定相等
B.互不相等
C.均相等
D.可以相等
5.子串是( )。
A .串中一些字符构成的序列 B. 串中若干个连续字符构成的序列
C .串中一个以上连续字符组成的序列 D. 串中任意个连续字符组成的序列
6. 若某二叉树的前序序列和中序序列相同(假设不包含空树),则该二叉树一定是( )。
A .所有结点都只有左孩子的二叉树
B. 根结点无左孩子的二叉树
C .只有根结点的二叉树
D .只有根结点或所有结点都无左子树的二叉树
7. 在线索二叉树中,t 所指结点没有左子树的充要条件是( )。
A .t->lchild==NULL B. t->ltag==1
C. t->ltag==1&&t->lchild==NULL
D. 以上都不对
8. 一个具有n 个顶点的有向完全图有( )条边。
A .n B. n(n-1)/2 C. n(n+1)/2 D. n-1
9. 已知数据表A 中每个元素距离其最终位置不远,则采用( )排序算法最节省时间。
A .堆排序 B. 快速排序 C. 直接插入排序 D.直接选择排序
10. 对于具有n 个结点的表,如果使用顺序查找,则在等概率下查找成功的平均查找长度为( )。
A .n/2 B. (n+1)/2 C. (n-1)/2 D. n/2+1
11. 顺序查找适合存储结构为( )的线性表。
A .顺序存储或链式存储 B. 散列存储
C .索引存储 D. 压缩存储
二.填空题
1. 平均查找长度与结点个数无关的查找方法是______________。
2. 在一棵B-树中删除关键字的过程中,若最终引起树根结点的合并,则B-树的高度 。
3. 在一个图中,所有顶点的度数之和等于所有边数的 。
4. 在一个无向图中,有n 个结点,e 条边,则邻接矩阵中非零元素的个数是 。
5. 对稀疏矩阵进行压缩存储,顺序存储方式是 ,链式存储方式是 。
6. n 阶对称矩阵压缩存储,需要存储的元素个数是 ,n 阶对角矩阵压缩存储,需要存储的元素个数是 ,n 阶上(下)三角矩阵压缩存储,需要存储的元素个数是 。
7. 在一个链队中,假设f 和r 分别为队首和队尾指针,则删除一个结点的运算是______________、______________和_____________操作。
8. 在一个链栈中,假设top 是栈顶指针,则插入s 所指结点的运算是______________和______________操作。
9. 线性表是具有n 个______________的有限序列。
10. 设栈S 和队列Q 的初始状态为空,元素a,b,c,d,e,f 依次通过栈S ,一个元素出栈后即进入队列Q 。
若这6个元素出队的顺序是b,d,c,f,e,a ,则栈S 的容量至少应该为______________。
11. 设广义表L=((a),(b,c)),则head (L )是__________,tail(L)是___________。
12. 具有1025个结点的二叉树的高度为_______
13. 根据n 个权值构造的哈夫曼树共有_______个结点。
14. 如果G 是具有n 个结点的无向图,那么它最多有_______条边。
15. 对n 记录进行起泡排序,最好情况下的比较次数是_______。
16. 在分块检索中如果采用顺序查找确定块,则对大小为196个元素的线性表分_______块最好,这时平均查找长度为_______。
17.深度为5的平衡二叉树中最少含有结点 个。
18. 在最坏情况下,具有n 个结点的二叉排序树的平均查找长度是 。
三、判断题(对打“√”,错打“×”)
1.所有的关键活动都提前完成,那么整个工程将会提前完成。
( )
2.装填因子α不影响散列表发生冲突的程度。
( )
3.关键路径是从源点到汇点的最短路径。
( )
4.栈的输入序列为123…n ,输出序列为n a a a 21,若n a i =,11-<≤n i ,则n i i a a a >>+1。
( )
5. 无向图G 的一个连通分量是G 的一个极大连通子图。
( )
6. 线性结构只能用顺序存储方式存放,而非线性结构只能用链式方式存取。
7. 栈的特征是后进先出。
8. 一个小根堆中,整个二叉树的根结点的值一定最小。
(假设不含关键字相同的
结点)。
9. n个顶点的无向连通图,若边数小于n-1,则该图必是连通图。
()
10. 在任意一棵二叉排序树中,删除某个结点又将其插入,则所得到的二叉排序树与删除前的原二叉树相同。
四.应用题
1. 给定6个字符(a,b,c,d,e,f)的权值(1,3,5,6,7,8)。
(1)构造一棵哈夫曼树。
(2)计算哈夫曼树的带权路径长度(WPL值)。
(3)根据构造的哈夫曼树给每个字符构造哈夫曼树编码。
(4)计算平均编码长度。
2. 给定关键字序列{10,30,50,70,90,100},请按二分查找法查找关键字
70,给出查找过程。
五.算法题
1.试编写一个算法,按关键字由大到小遍历一棵二叉排序树。
2.设计算法,对顺序存储的线性表(其中每个元素是一个正整数),在T(n)=O(n),S(n)=O(1)内将所有奇数放在所有偶数前。
3.在链式存储的线性表中将值为x的结点与值为y的结点互换。
4.无向图采用邻接矩阵或邻接表表示。
请设计算法,对输入的一条边,检查图中是否存在该边。
若不存在,则插入此边,否则删除该边。