数据结构练习3答案..
数据结构练习题第三章栈、队列和数组习题及答案
第三章栈、队列和数组一、名词解释: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.栈和队列的共同特点是( )。
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 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.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。
A.1 B.2 C.3 D.49.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。
2021年小学信息技术教师数据结构练习题及参考答案(三)
2021年小学信息技术教师专业技能数据结构练习题及参考答案(三)1.每个结点只存储一个数据元素,存储结点存放在连续的存储空间,该存储方式是( A )存储方式。
A.顺序 B. 链式 C. 索引 D. 散列2.对于顺序表的优缺点,下面说法错误的是( C )。
A.无需为表示节点间的逻辑关系而增加额外的存储空间。
B.可以方便的随机存取表中的任一结点。
C.删除和插入运算较方便。
D.由于顺序表要求占用连续的空间,存储分配只能预先进行(静态分配)。
3.下面( B )的时间复杂性最好,即执行时间最短。
A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)4.在带头结点的单链表h中,若要向表头插入一个由指针p所指向的结点,则执行( D )。
A. h=p, p->next=hB. p->next=h, h=pC. p->next=h, p=hD. p->next=h->next, h->next=p5.与线性表的链接存储相符的特性是( A )。
A.插入和删除操作灵活B.可随机访C.存储空间静态分配D.不需另外开辟空间来保存元素间的关系6.用某种排序方法对序列(25,84,21,47,15,27,68,35,20)进行排序,记录序列的变化情况如下: 25 84 21 47 15 27 68 35 20 20 15 21 25 4727 68 35 84 15 20 21 25 35 27 47 68 84 15 20 21 25 27 35 47 68 84 则采用的排序方法是( C )。
A.直接选择排序 B. 冒泡排序 C. 快速排序 D. 二路归并排序7.下列关于线性表的叙述中,不正确的是( C )。
A.线性表是n个结点的有穷序列B.线性表可以为空表C.线性表的每一个结点有且仅有一个前趋和一个后继D.线性表结点间的逻辑关系是1:1的联系8.将长度为m的单链表链接在长度为n的单链表之后的算法的时间复杂度为( B )。
数据结构题库课后练习题答案章节测试题1-9章全
第一章绪论一.填空题1.数据结构是一门研究非数值计算的程序设计问题中计算机的_____________ 以及它们之间的_________ 和操作等的学科。
2.数据结构包括数据的_____________ 结构、_____________ 结构和运算。
3.数据的物理结构被分为_________、________、__________和___________四种。
4.数据的逻辑结构是指数据元素之间的逻辑关系,根据数据元素之间关系的不同特性,逻辑结构通常有_______________ ,________________ ,________________ 和__________________四类基本结构。
5.一种抽象数据类型包括 ____________和_____________ 两个部分。
6.数据结构是指数据及其相互之间的______________。
当结点之间存在M 对N(M:N)的联系时,称这种结构为____________当结点之间存在1 对N(1:N)的联系时,称这种结构为____________。
7.数据结构被形式地定义为(D, R),其中D是___________ 的有限集合,R是D上的有限集合。
8. 数据的基本单位是________,它在计算机中是作为一个整体来处理的。
9.算法的特性有________,___________ ,____________ ,_______________ 和__________ 等五种特性。
10.通常从四个方面评价算法的质量:_________、_________、_________和_________。
11.算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
12.算法的效率可分为______________ 效率和__________________ 效率。
13.算法的时间复杂度为(3n3+2000n log2n+90)/n2,其数量级表示为________。
数据结构练习题 第三章 栈、队列和数组 习题及答案
第三章栈、队列和数组一、名词解释: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.以下运算实现在顺序栈上的退栈,请在________________用适当句子予以填充。
数据结构练习题及参考答案
《数据结构》练习题一、解答题(共50分)1、(8分)假设用于通讯的电文字符集及其出现的频率如下表所示。
请为这8个字符设计哈夫曼编码,并画出其哈夫曼树,计算WPL 。
2. (8分)若一棵二叉树中序遍历和后序遍历序列分别为:DBEHGAFIC 和DHGEBIFCA 。
试画出这棵二叉树,并写出其先序遍历和层序遍历序列。
3.(16分)以下无向网络以邻接表为存储结构(假设邻接表的顶点表按字母a 、b 、c 、d 、e 、f 、g 、h 的顺序依次存储,邻接表的边表结点按顶点的下标由小到大链接)。
请画出其邻接表,并写出从顶点f 出发,分别进行深度和广度优先遍历的序列,写出用Prime 方法从顶点c开始产生最小生成树的边的序列。
4.(8分)已知键值序列为(44,39,67,25, 52,59,43,84,54,58,15,26,12,73,92,69),取填充因子α=0.8,采用线性探查法处理冲突,试构造散列表。
⒌(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81),用希尔排序方法进行排序,d1=5,d2=3,d3=1,则第二趟的排序结果是( )。
⒍(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81) ,用堆(大根堆)排序方法进行排序,第一趟的排序结果是( )。
二、完善程序(共20分,每空2分)1.假设一组递减有序的原始数据存储在数组r 中,存放元素的下标下限为low,下标上字符 出现频率 a 0.05 b 0.03 c 0.24 d 0.16 e 0.08 f 0.24 g 0.18 h0.02限为high,以下是在数组中查找数值为k的折半查找算法。
请填空完善程序。
int BinSearch(int r[ ], int low,int high,int k){ int l,h,m;l= low; h= high;while ( ⑴){m= ⑵;if (k < r[m]) ⑶;else if (k > r[m]) ⑷;else return m;}return 0;}2. 以下程序功能是将数组r中,从下标first到end之间的元素进行快速排序的分区。
《数据结构(C语言版 第2版)》(严蔚敏 著)第三章练习题答案
《数据结构(C语言版第2版)》(严蔚敏著)第三章练习题答案第3章栈和队列1.选择题(1)若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。
A.5,4,3,2,1 B.2,1,5,4,3 C.4,3,1,2,5 D.2,3,5,4,1答案:C解释:栈是后进先出的线性表,不难发现C选项中元素1比元素2先出栈,违背了栈的后进先出原则,所以不可能出现C选项所示的情况。
(2)若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为()。
A.i B.n-i C.n-i+1 D.不确定答案:C解释:栈是后进先出的线性表,一个栈的入栈序列是1,2,3,…,n,而输出序列的第一个元素为n,说明1,2,3,…,n一次性全部进栈,再进行输出,所以p1=n,p2=n-1,…,pi=n-i+1。
(3)数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。
A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n答案:D解释:对于非循环队列,尾指针和头指针的差值便是队列的长度,而对于循环队列,差值可能为负数,所以需要将差值加上MAXSIZE(本题为n),然后与MAXSIZE(本题为n)求余,即(n+r-f)%n。
(4)链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。
A.x=top->data;top=top->link;B.top=top->link;x=top->link;C.x=top;top=top->link;D.x=top->link;答案:A解释:x=top->data将结点的值保存到x中,top=top->link栈顶指针指向栈顶下一结点,即摘除栈顶结点。
数据结构与算法练习试卷3
数据结构与算法练习试卷3(总分:56.00,做题时间:90分钟)一、选择题(总题数:27,分数:56.00)1.选择题()下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
__________________________________________________________________________________________ 解析:2.以下关于顺序存储结构的叙述中,哪一条是不正确的?______。
(分数:2.00)A.存储密度大B.逻辑上相邻的节点物理上不必邻接√C.可以通过计算直接确定第i个节点的存储地址D.插入、删除运算操作不方便解析:3.单键表的每个节点中包括一个指针link,它指向该节点的后继节点。
现要将指针q指向的新节点插入到指针p指向的单链表节点之后,下面的操作序列中哪一个是正确的?______。
(分数:2.00)A.q:=p^.link;p^.link:=q^.link;B.p^.link:=q^.link;q:=p^.link;C.q^.link:=p^.link;p^.link:=q;√D.p^.link:=q;q^.link:=p^.link;解析:4.设有下三角矩阵A[0..10,0..10],按行优先顺序存放其非零元素,每个非零元素占两个字节,存放的基地址为100,则元素A[5,5]的存放地址为______。
(分数:2.00)A.110B.120C.130D.140 √解析:5.栈S最多能容纳4个元素。
现有6个元素按A、B、C、D、E、F的顺序进栈,下列哪一个序列不是可能的出栈序列? ______。
(分数:2.00)A.A、D、E、C、B、FB.A、F、E、D、C、B √C.C、B、E、D、A、FD.C、D、B、F、E、A解析:6.霍夫曼算法可以用于______。
(分数:2.00)A.动态存储管理B.表达式求值C.数据通信的二进制编码√D.城市间的交通网设计解析:7.设待排序关键码序列为(25,18,9,33,67,82,53,95,12,70),要按关键码值递增的顺序进行排序,采取以第一个关键码为分界元素的快速排序法,第一趟完成后关键码 33被放到了第几个位置?______。
数据结构1-3习题答案
课堂练习
1、在什么情况下用顺序表比链表好? 、在什么情况下用顺序表比链表好 2、画出执行下列各行语句后各指针及链表的 示意图。 示意图。 、 L=(LinkList) malloc (sizeof(LNode));//等价于 等价于L=new LNode; 等价于 P=L; For(i=1;i<=4;i++) { P->next=(LinkList) malloc (sizeof(LNode)); P=P->next; P->data=i*2-1;} P->next=NULL; For(i=4;i>=1;i--) Ins_LinkList(L,i+1,i*2); For(i=1;i<=3;i++) Del_LinkList(L,i);
在下面两列中,左侧是算法(关于问题规模) 2.8 在下面两列中,左侧是算法(关于问题规模) 的执行时间,右侧是一些时间复杂度。 的执行时间,右侧是一些时间复杂度。请用连 线的方式表示每个算法的时间复杂度。 线的方式表示每个算法的时间复杂度。 100n3 6n2-12n+1 1024 n+2log2n n(n+1)(n+2)/6 2n+1+100n
判断下述计算过程是否是一个算法: 2.4 判断下述计算过程是否是一个算法: Step1: 开始 Step2: n<=0; Step3: n=n+1; 重复步骤3; Step4: 重复步骤3; 结束; Step5: 结束; 该计算过程不是一个算法, 答:该计算过程不是一个算法,因为其不满足算法的 有穷性。 有穷性。
回顾
第一章知识要点: 第一章知识要点: • 基本概论:数据、数据元素、数据项、数据对象 基本概论:数据、数据元素、数据项、 • 数据结构(D,S) 数据结构(D,S)
数据结构练习题1-5章(答案)
11、 一个栈的输入序列为 123…n,若输出序列的第一个元素是 n,输出第 i(1<=i<=n)个元
素是( B )。
A. 不确定
B. n-i+1
C. i
D. n-i
1
12、 有六个元素 6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?( C )
A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6
A. 1 和 5
B. 2 和 4
C. 4 和 2
D. 5 和 1
16、下面关于串的的叙述中,哪一个是不正确的?( B )
A.串是字符的有限序列
B.空串是由空格构成的串
C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储
17、设有两个串 p 和 q,其中 q 是 p 的子串,求 q 在 p 中首次出现的位置的算法称为( c )
A. 内存地址
B.数组下标 C.下一元素地址
D.左、右孩子地址
7、下面的叙述不正确的是( BC )
A.线性表在链式存储时,查找第 i 个元素的时间同 i 的值成正比
B. 线性表在链式存储时,查找第 i 个元素的时间同 i 的值无关
C. 线性表在顺序存储时,查找第 i 个元素的时间同 i 的值成正比
D. 线性表在顺序存储时,查找第 i 个元素的时间同 i 的值无关
13、 设有三个元素 X,Y,Z 顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是( C )。
A.XYZ
B. YZX
C. ZXY
D. ZYX
14、 假设以数组 A[m]存放循环队列的元素,其头尾指针分别为 front 和 rear,则当前队列中的
数据结构-习题三数据结构综合练习
练习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(题后含答案及解析)
数据结构练习试卷3(题后含答案及解析)题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1.二叉树(1)。
在完全的二叉树中,若一个结点没有(2),则它必定是叶结点。
每棵树都能唯一地转换成与它对应的二叉树。
由树转换成的二叉树里,一个结点N的左子结点是N在原树里对应结点的(3),而N的右子结点是它在原树里对应结点的(4)。
A.是特殊的树B.不是树的特殊形式C.是两棵树的总称D.是只有两个根结点的树形结构正确答案:B 涉及知识点:数据结构2.A.左子结点B.右子结点C.左子结点或者没有右子结点D.兄弟正确答案:A 涉及知识点:数据结构3.A.最左子结点B.最右子结点C.最邻近的右兄弟D.最邻近的左兄弟正确答案:A 涉及知识点:数据结构4.A.最左子结点B.最右子结点C.最邻近的右兄弟D.最邻近的左兄弟正确答案:C解析:树是结点的有限集合,它有且仅有1个根结点。
二叉树有0个或1个根结点,二者是两个不同的概念。
所以,第1空的正确答案为选项B。
在完全二叉树中,如果一个结点没有左子结点,那么必然没有右子结点,所以就一定是叶结点。
第2空的正确答案为选项A。
树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。
按照这种关系很自然地就能将树转换成相应的二叉树:①在所有兄弟结点之间加一连线;②对每个结点,除了保留与其长子的连线外,去掉该结点与其他孩子的连线。
因为树根没有兄弟,所以,树转换为二叉树之后,二叉树的根结点的右子树必然为空。
在由树转换成的二叉树中,一个结点N的左一个结点N的左子结点是N在原树里对应结点的最左子结点,而N的右子结点是它在原树里对应结点的最邻近的右兄弟。
所以,第3空的正确答案为选项A,第4空的正确答案为选项C。
知识模块:数据结构5.在一棵非空二叉树中,叶子节点的总数比度为2的节点总数多(43)个。
数据结构_第三阶段练习-齐了 江南大学考试题库答案 共3个阶段,这是其中一个阶段,答案在最后
江南大学网络教育第三阶段练习题考试科目:《数据结构》第章至第章(总分100分)__________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共10题,总分值20分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)1. m阶B树中的一个分支结点最多含(D)个关键字。
( D)(2 分)A. m-1B. mC. [m/2]D. [m/2]+12. 将两个各有n个元素的有序表归并成一个有序表,最少进行( C)次比较。
(2 分)A. nB. 2n-1C. 2nD. n-13. 下述文件中适合于磁带存储的是( C )。
(2 分)A. 顺序文件B. 索引文件C. 散列文件D. 多关键字文件4. 外部排序是指( B )。
(2 分)A. 在外存上进行的排序方法B. 不需要使用内存的排序方法C. 数据量很大,需要人工干预的排序方法D. 排序前后数据在外存,排序时数据调入内存的排序方法5. 设哈希表地址范围为0~19,哈希函数H(key)=key%17,使用二次探测再散列法处理冲突。
若表中已存放有关键字值为6、22、38、55的记录,则再放入关键字值为72的记录时,其存放地址应为( C)。
(2 分)A. 2B. 3C. 7D. 86. ISAM文件和VSAM文件属于(A )。
(2 分)A. 索引非顺序文件B. 索引顺序文件C. 顺序文件D. 散列文件第1页/共5页。
数据结构期末综合练习三(运算题)
数据结构期末综合练习三(运算题)数据结构(本科)期末综合练习三(运算题)1. 对于⼀个n?n的矩阵A的任意矩阵元素a[i][j],按⾏存储时和按列存储时的地址之差是多少。
(设两种存储时的开始存储地址均为LOC(0, 0),元素所占存储单元数均为d)2. 设有⼀个⼆维数组A[10][20],按⾏存放于⼀个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的地址是多少。
3. 设有⼀个⼆维数组A[10][20],按列存放于⼀个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的地址是多少。
4. 设有⼀个10?10的矩阵A,将其下三⾓部分按⾏存放在⼀个⼀维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。
5. 设有⼀个10?10的对称矩阵A,将其上三⾓部分按⾏存放在⼀个⼀维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。
6. 设有⼀个⼆维数组A[m][n]采⽤按⾏存储,假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占⼀个存储字,则A[4][4]存放在什么位置。
7. 设有⼀个⼆维数组A[11][6],按⾏存放于⼀个连续的存储空间中,A[0][0]的存储地址是1000,每个数组元素占4个存储字,则A[8][4]的地址在什么地⽅。
8. 设有⼀个三维数组A[10][20][15],按页⁄⾏⁄列存放于⼀个连续的存储空间中,每个数组元素占4个存储字,⾸元素A[0][0][0]的存储地址是1000,则A[8][4][10]存放于什么地⽅。
9. 假定⼀棵⼆叉树⼴义表表⽰为a(b(c),d(e,f)),分别写出对它进⾏中序、后序、按层遍历的结果。
中序:后序:按层:10. 假定⼀棵⼆叉树的⼴义表表⽰为A(B(,D(G)),C(E,F)),分别写出对它进⾏前序、中序、按层遍历的结果。
《数据结构(C语言版 第2版)》(严蔚敏 著)第三章练习题答案
《数据结构(C语言版第2版)》(严蔚敏著)第三章练习题答案第3章栈和队列1.选择题(1)若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。
A.5,4,3,2,1 B.2,1,5,4,3 C.4,3,1,2,5 D.2,3,5,4,1答案:C解释:栈是后进先出的线性表,不难发现C选项中元素1比元素2先出栈,违背了栈的后进先出原则,所以不可能出现C选项所示的情况。
(2)若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为()。
A.i B.n-i C.n-i+1 D.不确定答案:C解释:栈是后进先出的线性表,一个栈的入栈序列是1,2,3,…,n,而输出序列的第一个元素为n,说明1,2,3,…,n一次性全部进栈,再进行输出,所以p1=n,p2=n-1,…,pi=n-i+1。
(3)数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。
A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n答案:D解释:对于非循环队列,尾指针和头指针的差值便是队列的长度,而对于循环队列,差值可能为负数,所以需要将差值加上MAXSIZE(本题为n),然后与MAXSIZE(本题为n)求余,即(n+r-f)%n。
(4)链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。
A.x=top->data;top=top->link;B.top=top->link;x=top->link;C.x=top;top=top->link;D.x=top->link;答案:A解释:x=top->data将结点的值保存到x中,top=top->link栈顶指针指向栈顶下一结点,即摘除栈顶结点。
Python数据结构——练习题及答案
目录习题一 (3)习题二 (5)习题三 (7)习题四 (9)习题五 (11)习题六 (14)习题七 (18)习题八 (20)习题九 (22)习题一一、选择题1.下列有关说法不正确的是(D)。
A.数据元素是数据的基本单位B.数据项是数据中不可分割的最小可标识单位C.数据可由若干个数据元素构成D.数据项可由若干个数据元素组成2.计算机所处理的数据一般具备某种内在联系,这是指(A.数据和数据之间存在某种关系B.元素和元素之间存在某种关系C.元素内部存在某种关系D.数据项和数据项之间存在某种关系3.从逻辑上可以把数据结构分为(C)两大类。
A.动态结构和静态结构B.顺序结构和链式结构C.线性结构和非线性结构D.初等结构和构造型结构4.下面关于算法的说法正确的是(D)。
A.算法最终必须由计算机程序执行B.算法就是为解决某一问题而编写的程序C.算法的可行性是指不能有二义性指令D.以上几个都是错误的5.算法的时间复杂度取决于(C)。
A.问题的规模B.待处理数据的初态C.A和BD.以上都不是B)。
二、填空题1.数据项是数据元素中不可分割的最小标识单位,通常不具备完整、确定的实际意义,只是反映数据元素某一方面的属性。
2.数据的逻辑结构通常分为集合、线性结构、树形结构和图状(或网状)结构。
3.链式存储结构、数据的存储结构通常分为顺序存储结构、索引存储结构和哈希(或散列)存储结构。
4.一个算法有5个特性,即有穷性、确定性、可行性、输入和输出。
5.在对算法的空间复杂度进行分析时,只需考虑临时变量所占用的存储空间而不用考虑形参占用的存储空间。
三、编程题(略)习题二一、选择题1.顺序表比链表的存储密度更大,是因为(B)。
A.顺序表的存储空间是预先分配的B.顺序表不需要增加指针来表示元素之间的逻辑关系C.链表的所有结点是连续的D.顺序表的存储空间是不连续的2.假定顺序表中第一个数据元素的存储地址为第1000个存储单元,若每个数据元素占用3个存储单元,则第五个元素的地址是第(C)个存储单元。
数据结构练习3答案..
数据结构练习(三)参考一、选择题1.顺序查找法适合于存储结构为的线性表A)哈希存储B)顺序存储或链式存储C)压缩存储D)索引存储2.一个长度为100的已排好序的表,用二分查找法进行查找,若查找不成功,至少比较________次。
A)9 B)8 C)7 D)63.采用顺序查找方法查找长度为n的线性表时,平均比较次数为。
A)n B)n/2 C)(n+1)/2 D)(n-1)/24.对线性表进行折半查找时,要求线性表必须。
A)以顺序方式存储B)以顺序方式存储,且结点按关键字有序排列C)以链表方式存储D)以链表方式存储,且结点按关键字有序排列5.采用二分查找法查找长度为n的线性表时,每个元素的平均查找长度为。
A)O(n2)B)O(nlog2n)C)O(n)D)O(log2n)6.有一个长度为12的有序表R[0…11],按折半查找法对该表进行查找,在表内各元素等概率查找情况下查找成功所需的平均比较次数为。
A)35/12 B)37/12 C)39/12 D)43/127.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,99},当采用折半查找法查找关键字为82的元素时,次比较后查找成功。
A)1 B.2 C)4 D)88.当采用分块查找时,数据的组织方式为。
A)数据分成若干块,每块内存数据有序B)数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C)数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D)数据分成若干块,每块(出最后一块外)中的数据个数需相同9.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应有个结点最佳。
A)10 C)6 D)62510.不能生成右图所示二叉排序树的关键字序列是_____。
B)42531 C)45213 D)4231511.按____遍历二叉排序树,可以得到按值递增或递减次序的关键码序列。
数据结构单元3练习参考答案
一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)
(√)(1)栈是运算受限制的线性表。
(√)(2)在栈空的情况下,不能作出栈操作,否则产生下溢出。
(ㄨ)(3)栈一定是顺序存储的线性结构。
(√)(4)栈的特点是“后进先出”。
(ㄨ)(5)空栈就是所有元素都为0的栈。
(ㄨ)(6)在C或C++语言中设顺序栈的长度为MAXLEN,则top=MAXLEN时表示队满。
int correct(char a[ ])
{
stack s ;
InitStack(s);//调用初始化栈函数
for(i=0;i<strlen(a);i++)
if (a[i]= =’(’)
Push (s,’(’);
else if (a[i]= =’)’)
{
if StackEmpty(s)//调用判栈空函数
(13)经过下列栈的运算后,再执行ReadTop(s)的值是(A)。
InitStack(s)(初始化栈);Push(s,a);Push(s,b); Pop(s)
A.aB.bC.1D.0
(14)经过下列栈的运算后,x的值是(B)。
InitStack(s)(初始化栈);Push(s,a);Push(s,b);ReadTop(s);Pop(s,x);
(7)带头结点的链栈LS的示意图如下,栈顶元素是(A)
LS
H
A
B
C
D
Λ
A.AB.BC.CD.D
(8)链栈与顺序栈相比,有一个比较明显的优点是( B )。
A.插入操作更加方便B.通常不会出现栈满的情况。
C.不会出现栈空的情况D.删除操作根加方便
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构练习(三)参考一、选择题1.顺序查找法适合于存储结构为的线性表A)哈希存储B)顺序存储或链式存储C)压缩存储D)索引存储2.一个长度为100的已排好序的表,用二分查找法进行查找,若查找不成功,至少比较________次。
A)9 B)8 C)7 D)63.采用顺序查找方法查找长度为n的线性表时,平均比较次数为。
A)n B)n/2 C)(n+1)/2 D)(n-1)/24.对线性表进行折半查找时,要求线性表必须。
A)以顺序方式存储B)以顺序方式存储,且结点按关键字有序排列C)以链表方式存储D)以链表方式存储,且结点按关键字有序排列5.采用二分查找法查找长度为n的线性表时,每个元素的平均查找长度为。
A)O(n2)B)O(nlog2n)C)O(n)D)O(log2n)6.有一个长度为12的有序表R[0…11],按折半查找法对该表进行查找,在表内各元素等概率查找情况下查找成功所需的平均比较次数为。
A)35/12 B)37/12 C)39/12 D)43/127.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,99},当采用折半查找法查找关键字为82的元素时,次比较后查找成功。
A)1 B.2 C)4 D)88.当采用分块查找时,数据的组织方式为。
A)数据分成若干块,每块内存数据有序B)数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C)数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D)数据分成若干块,每块(出最后一块外)中的数据个数需相同9.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应有个结点最佳。
A)10 C)6 D)62510.不能生成右图所示二叉排序树的关键字序列是_____。
B)42531 C)45213 D)4231511.按____遍历二叉排序树,可以得到按值递增或递减次序的关键码序列。
A)先序C)后序D)层序12.在一棵平衡二叉树中,每个结点的平衡因子的取值范围是。
—1 B)-2—2 C)1—2 D)0—113.具有5层结点的A VL树至少有个结点A)10 C)15 D)1714.在含有15个结点的平衡二叉树上,查找关键字为28的结点,则依次比较的关键字可能是。
A)30,36 B)38,48,28,18,38,28D)60,30,50,40,38,3615.一棵深度为k的平衡二叉树,其每个非叶子结点的平衡因子均为0,则该树共有个结点。
A)2k-1-1 B)2k-1 C)2k-1 +1k-116.查找效率最高的二叉排序树是。
A.所有结点的左子树都为空的二叉排序树B.所有节点的右子树都为空的二叉排序树D.没有左子树的二叉排序树17.下面关于B-树和B+树的叙述中,不正确的结论是。
树和B+树都能有效地支持顺序查找B)B-树和B+树都能有效地支持随机查找C)B-树和B+树都是平衡的多分支树D)B-树和B+树都可用于文件索引结构18.设有n个关键字,哈希查找法的平均查找长度是。
(1)B)O(n)C)O(log2n)D)O(n2)19.将10个元素散列到100000个单元的哈希表,则产生冲突。
A)一定会B)一定不会D)以上都不对20.设哈希表长m=14,哈希函数H(key)=key Mod 11.表中已有4个结点H (15)=4,H(38)=5,H(61)=6,H(84)=7,其余地址为空,如用二次探测再散列法处理冲突,则关键字为49的结点的地址是。
A)8 B)3 C)521.假设有k个关键字互为同义词,若用线性探测再散列法把这k个关键字存入哈希表中,至少要进行次探查。
A)k-1 B)k C)k+1 (k+1)/222.若采用链地执法构造哈希表,哈希函数为H(key)=key Mod 17,则需(1)个链表,这些链表的首指针构成一个指针数组,该数组的下标范围为(2)。
(1B)13 C)16 D)任意(2)A)0—17 B)1—17 —16 D)1—1623.直接插入排序在最好情况下的时间复杂度为。
(n)B)O(nlog2n)C)O(log2n)D)O(n2)24.稳定的排序算法是。
B)直接选择排序C)堆排序D)快速排序25.数据序列{8,9,10,4,5,6,20,1,2}只能是算法的两趟排序后的结果。
A)直接选择排序B)冒泡排序D)堆排序26.对数据序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排序变为{9,15,7,8,20,-1,4},则采用的是算法。
A)直接选择排序B)冒泡排序D)堆排序27.以下排序方法中,在初始序列已基本有序的情况下,排序效率最高。
A)归并排序C)快速排序D)堆排序28.不稳定的排序方法是。
A)冒泡排序B)直接插入排序 D)归并排序29.以下排序算法中,不能保证每趟排序至少能将一个元素放到其最终位置上。
A)快速排序C)堆排序D)冒泡排序30.在以下排序方法中,关键字比较的次数与记录的初始排列次序无关的是。
A)希尔排序B)冒泡排序C)插入排序31.在排序算法中,每次从未排序的记录中选取最小(或最大)关键字的记录,加入到已排序记录的末尾,该排序方法是。
A)希尔排序B)冒泡排序C)插入排序32.采用直接选择排列,比较次数与移动次数分别是。
A)O(n),O(log2n)B)O(log2n),O(n2)(n2),O(n)D)O(n log2n),O(n)33.以下序列不是堆的是。
A){100,85,98,77,80,60,82,40,20,10,66}B){100,98,85,82,80,77,66,60,40,20,10}C){10,20,40,60,66,77,80,82,85,98,100},85,40,77,80,60,66,98,82,10,20}34.堆排序是(1)类排序,堆排序平均时间复杂度和需要附加的存储空间复杂度分别是(2)。
(1).A)插入B)交换C)归并(2).A)O(n2)和O(1)(nlog2n)和O(1)C)O(nlog2n)和O(n) D)O(n2)和O(n)35.对n个记录的文件进行堆排序,最坏情况下的执行时间是。
A)O(log2n)B)(n)(nlog2n)D)O(n2)36.设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用排序法。
A)冒泡排序B)快速排序D)基数排序37.在非空m阶B-树上,除根结点以外的所有其他非终端结点。
A)至少有⎣⎦2/m棵子树B)至多有⎣⎦2/m棵子树⎡⎤2/m棵子树 C)至少有⎡⎤2/m棵子树38.对于哈希函数H(key)=key%13,被称为同义词的关键字是________。
A)35和41 B)23和39 C)15和44 和51 39.堆的形状是一棵________。
A)二叉排序树B)满二叉树D)不是二叉树40.以下法在数据基本有序时效率最好。
A)快速排序C)堆排序D)希尔排序41.快速排序在情况下最不利于发挥其长处。
A)要排序的数据量太大B)要排序的数据中含有多个相同值C)要排序的数据个数为奇数42.下列序列中,__是执行第一趟快速排序后得到的序列(关键字为字符串)B. [cd,eb,ax,da]ff[ha,gc,bb]C. [gc,ax,eb,cd,bb]ff[da,ha]D. [ax,bb,cd,da]ff[eb,gc,ha]43.一个记录的关键字为{46,79,56,38,40,84},采用快速排序以第一个记录为基准得到的第一次划分结果为________。
A){38,40,46,56,38,79,84} B){40,38,46,79,56,84}D){40,38,46,56,79}44.对下列关键字序列用快速排序法进行排序时,速度最快的情形是____。
A){21,25,5,17,9,23,30} B){25,23,30,17,21,5,9}D){5,9,17,21,23,25,30}45.下列排序方法中,在一趟结束后不一定能选出一个元素放在其最终位置上。
A)直接选择排序B)冒泡排序D)堆排序46.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。
B)2n-1 C)2n D)n-1二、填空题:1.在n个记录的有序顺序表中进行折半查找,最大的比较次数是⎣log2n ⎦+1 。
2.设线性表{a1,,,a2,,…,a500}的元素的值从小到大排列,对一个给定的K的值用二分法查找线性表,在查找不成功的情况下至多需要比较⎣log2n ⎦+1 次3.在直接插入排序、希尔排序、直接选择排序、快速排序、堆排序和归并排序中,平均比较次数最少的排序方法是快速排序。
4.一棵深度为h的B-树,任一个叶子结点所处的层数为h ,当向B-树插入一个新关键字时,为检索插入位置需读取h-1 个结点。
5.评价哈希表好坏的标准是哈希表的均匀性。
6.在各种查找方法中,其平均查找长度与结点个数n无关的查找方法是哈希表查找。
7.设用希尔排序对数序{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的不长(也称增量序列)依次是4、2、1,则排序需 3 趟,写出第一趟结束后,数序中数据的排列次序是10,7,-9,0,47,23,1,8,98,36 。
三、判断题2.顺序查找方法只能在顺序存储结构上进行3.折半查找可以在有序的双向链表上进行每个结点的关键字都比左孩子关键字大,比右孩子关键字小6.每个结点的关键字都比左孩子关键字大,比右孩子关键字小,这样的二叉树都是二叉排序树7.在二叉排序树中,新插入的关键字总是处于最低层10.在平衡二叉排序树中,每个结点的平衡因子值都是相等的哈希存储法只能存储数据元素的值,不能存储数据元素之间的关系。
13.哈希冲突是指同一个关键字对应多个不同的哈希地址。
14.哈希查找过程中,关键字的比较次数和哈希表中关键字的个数直接相关。
15.在用线性探测法处理冲突的哈希表中,哈希函数值相同的关键字总是存在一片连续的存储单元中。
16.若哈希表的装填因子a<<1,则可避免冲突的发生。
哈希表的查找效率主要取决于哈希表造表时选取的哈希函数和处理冲突的方法。
四、简答题:1.若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找,试在下述两种情况下分别讨论两者在等概率时的平均查找长度;(1)查找不成功,即表中无关键字等于给定值k的记录(2)查找成功,即表中有关键字等于给定值k的记录2.已知一个有序表为{12,18,20,25,29,32,40,62,83,90,95,98},当折半查找值29和90的元素时,分别需要多少次比较才能查找成功?若采用顺序查找时(从前往后找),分别需要多少次比较才能成功?4,4,5,103.比较静态查找表的3种查找方法4.请回答下列关于堆的问题(1(2)设有一个最小堆(小根堆),即堆中任意结点的关键字均小于它的左孩子Array和右孩子的关键字。