1、数据结构本期末综合练习月数据结构期末综合练习2018年12月期末练习一一、单项选择题1. 一种逻辑结构在存储时( )。A只要存储数据元素间的关系 B只能采用一种存储结构 C可采用不同的存储结构 D只要存储数据元素的值 2同一种逻辑结构( )。 A只能有唯一的存储结构 B可以有不同的存储结构 C只能表示某一种数据元素之间的关系 D以上三种说法均不正确3 .对链表,以下叙述中正确的是( )。A不能随机访问任一结点 B结点占用的存储空间是连续的C插入删除元素的操作一定要要移动结点 D可以通过下标对链表进行直接访问4链表所具备的特点是( )。A可以随机访问任一结点 B占用连续的存储空间C插入删除元素的
2、操作不需要移动元素结点 D可以通过下标对链表进行直接访问5线性表在存储后,如果相关操作是:要求已知第i个结点的位置访问该结点的前驱结点,则采用( )存储方式是不可行的。A单链表 B双链表 C单循环链表 D顺序表6数据的物理结构( )。 A与数据的逻辑结构无关 B仅仅包括数据元素的表示C只包括数据元素间关系的表示 D包括数据元素的表示和关系的表示7栈和队列的共同特点是( )。A都是先进后出 B元素都可以随机进出C只容许在端点处插入和删除元素 D都是先进先出8线性结构中数据元素的位置之间存在( )的关系。 A一对一 B一对多9元素2,4,6,8按顺序依次进栈,按该栈的的可能输出序列依次入队列,该队
3、列的可能输出序列是( )(进栈出栈可以交替进行)。A8,6,2,4 B8,4,2,6 C6,2,4,8 D8,6,4,2 10以下表中可以随机访问的是( )。 A单向链表 B双向链表 C单向循环链表 D顺序表11在一个不带头结点的链队中,假设f和r分别为队头和队尾指针,则从该对列中删除一 个结点并把结点的值保存在变量x中的运算为( )。 Ax=rdata;r=rnext。 Br=rnext。x=rdata Cx=fdata;f=fnext。 Df=fnext。x=fdata 12算法的时间复杂度与( )有关。A所使用的计算机 B与计算机的操作系统 C与算法本身 D与数据结构13设有一个20阶的
4、对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第38号元素对应于矩阵中的元素是( )。Aa10,8 Ba7,6 Ca9,2 Da8,5 14设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为( )。 An-i+1 Bn-i Cn-i-1 Di15在C语言中,分别存储 “S”和s,各需要占用( )字节。 A一个和两个 B两个 C一个 D两个和一个 16在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用的语句是( )。 Ap=q-next Bp-next=q Cp-ne
5、xt=qnext Dq-next=NULL17一棵有n个结点,采用链式存储的二叉树中,共有( )个指针域被有效使用(即指针域为非空)。 An+1 Bn Cn-1 Dn-218从一个栈顶指针为top的链栈中删除一个结点时,用变量x保存被删结点的值,则执行( )。 Ax=top-data。 top=top-next。 Bx=top-data。 Ctop=top-next。 x=top-data。 Dtop=top-next。 x=data。19在一棵二叉树中,若编号为i的结点存在双亲结点,则双亲结点的顺序编号为( )。 Ai/2.0Bi/2向下取整C2i+1 Di+220在一个链队中,假设f和r分
6、别为队头和队尾指针,则删除一个结点的运算为( )。 Ar=f-next。 Br=r-next。 Cf=f-next。 Df=r-next。21设一棵哈夫曼树共有2n+1个结点,则该树有( )个非叶结点。 An Bn+1 Cn-1 D2n22一个栈的进栈序列是a,b,c,d,e,则栈的不可能输出序列是( )(进栈出栈可以交替进行)。Adceab Bedcba Cdecba Dabcde 23一棵完全二叉树共有4层,且第4层上有2个结点,该树共有( )个非叶子结点(根为第一层)。 A5B4C3D9 24有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )
7、。A26/10 B29/10 C29/9 D31/1025如图1所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。 Aabedfc Bacfebd Caebcdf Daebcfd 图126排序算法中,从未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较(要求比较次数尽量少),然后将其放入已排序序列的正确位置的方法是( )。 A冒泡 B直接插入 C折半插入 D选择排序27一组记录的关键字序列为(56,30,89,66,48,50,94,87,100),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。 A30,50,48,5
8、6,66,89,94,100,87B 50,30,48,56,66,89,94,87,100 C48,30,50,56,66,89,94,87,100D50,30,48,66,56,89,94,87,100 28设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主存储到一维数组B中(数组下标从1开始),则矩阵中元素A8,5在一维数组B中的下标是( )。A33 B32 C85 D4129线性表以( )方式存储,能进行折半查找。 A关键字有序的链接B顺序 C关键字有序的顺序D数组 C多对多 D每一个元素都有一个直接前驱和一个直接后继 30在一个无向图中,所有顶点的度数之和等于边
9、数的( )倍。A3 B2.5 C1.5 D2二、填空题1. 数据的逻辑结构在计算机中的表示称为_结构。 2栈和队列的操作特点分别是_ _和 _ _。3. 求两个n阶矩阵的乘积,算法的基本操作为_,时间复杂度为 _。 4结构中的数据元素存在多对多的关系称为_ _结构。5 设有一个长度为25的顺序表,第8号元素到第25号元素依次存放的值为8,9,10,11,25, 某人想要在第8个元素前插入1个元素7(也就是插入元素作为新表的第8个元素),他 的做法是从第8号元素开始,直到第25号元素依次向后移动1个位置,然后把7存放在 8号位置,其结果是新表中第25号元素的值为_ 。 6根据数据元素间关系的不同
10、特性,通常可分为集合、线性、四类基本结构。7在双向链表中,要在p所指的结后插入q所指的结点(设q所指的结点已赋值),其中所用的一条语句(p-next)-prior=q; 的功能是使P所指结点的_指向q 。 8要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。则比较的次数和算法的时间复杂度分别为_和 _ 。9设有一个带头结点的,头指针为head的单向链表,p指向表中某一个结点,且有p-next= =NULL,现要删除头结点,并使该单向链表构造成单向循环链表,通过操作head=head-next。 _。 10在一个单向链表中p所指结点之后插入一个s所指向的结点时,应执行_ _和p-
11、next=s。的操作。11从一个栈顶指针为top的链栈中删除一个结点时,用d保存被删结点的值,可执行_。(结点的指针域为next,数据域为data) 12在二叉树的链式存储结构中,通常每个结点中设置三个域,它们是值域、。13 循环链队列中,设front和rear分别为队头和队尾指针,(最多元素为MaxSize,采用少用一 个元素的模式),判断循环链队列为满的条件为_ 。14一棵二叉树中顺序编号为i的结点,若它存在左、右孩子,则左、右孩子编号分别为_、_。15对稀疏矩阵进行压缩存储,可采用三元组表,一个6行7列的稀疏矩阵A相应的三元组 表共有8个元素,则矩阵A共有_个零元素。 16向一个栈顶指针
12、为h的链栈中插入一个s所指结点时,可执行s-next=h。和_。17.一棵有20个结点的4度的树,其中3度结1个,2度结1个,1度结2个,则该树共有 _个叶结点。 18在一个链队中,设f和r分别为队头和队尾指针,则插入s所指结点的操作为_和r=s。(结点的指针域为next)19一棵有18个结点的二叉树,其2度结点数的个数为8,则该树共有 _个1度结点 20设有一棵深度为4的完全二叉树,第四层上有5个结点,该树共有_个结点。(根所在结点为第1层)21如图2所示的二叉树,其先序遍历序列为_。 图222对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的_、_ _和_ _三项信息。23
13、在查找表中,通过记录的某关键字能唯一地确定一个记录,该关键字称为_。24在对一组记录(55,39,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个记录65插入到有序表时,为寻找插入位置需比较_次。三、综合题1(1)对给定权值3,1 ,4,4,5,6,构造深度为5的哈夫曼树。(设根为第1层) (2) 求树的带权路径长度。(3)链接存储上述哈夫曼树,结点中共有多少个个指针域为空,说明理由.2 (1)以2,3,4,7,8,9作为叶结点的权,构造一棵哈夫曼树( 要求每个结点的左子树根结点的权小于等于右子树根结点的权),给出相应权重值叶结点的哈夫曼编码。(2) 一棵哈夫曼树有n个
14、叶结点,它一共有多少个结点?简述理由?3. (1) 如下的一棵树,给出先序遍历序列 (2) 把1,2,3,4,5,6,7,8,9填人,使它成为一棵二叉排序树 提示:设图中的树是二叉排序树,找出中序遍历序列与 1,2,9的对应关系 (3) 请在该树中再插入一个结点3.5作为叶结点,并使它仍然是一棵二叉排序树。 图34一组记录的关键字序列为(46,79,56,38,40,84)(1)利用快速排序的方法,给出以第一个记录为基准得到的一次划分结果(给出逐次交换元素的过程,要求以升序排列)(2)对上述序列用堆排序的方法建立大根堆,要求以二叉树逐次描述建堆过程。5设查找表为(5,6,7,8,9,10,11
15、,12,13,14) (1)画出对上述有序表进行折半查找所对应的判定树(要求以数据元素作为树结点) (2)给出二叉排序树的定义,针对上述折半查找所对应的判定树的构造过程,说明判定树 是否是二叉排序树(设树中没有相同结点)?(3)为了查找元素5.5,经过多少次元素间的比较才能确定不能查到?6设查找表为(50,60,75,85,96,98,105,110,120,130) (1)说出进行折半查找成功查找到元素120需要进行多少次元素间的比较?(2)为了折半查找元素95,经过多少次元素间的比较才能确定不能查到?(3)画出对上述有序表进行折半查找所对应的判定树(要求以数据元素作为树结点)四、程序填空题
16、1以下函数为直接选择排序算法,对a1,a2,an中的记录进行直接选择排序,完成程序中的空格typedef struct int key。NODE。void selsort(NODE a,int n) int i,j,k。 NODE temp。 for(i=1。i= _(1)_。i+) k=i。 for(j=i+1。j= _(2)_。j+) if(aj.keyak.key) _(3)_。 if(i!=k) temp=ai。_(4)_。_(5)_。 2以下是用尾插法建立带头结点且有n个结点的单向链表的程序,结点中的数据域从前向后依次为1,2,3,n,完成程序中空格部分。NODE *create(n
17、)NODE *head , *p, *q。 int i。 p=(NODE*)malloc(sizeof(NODE)。head= (1) 。 (2) 。pnext=NULL。 /*建立头结点*/for(i=1。 idata。while (q-next!=NULL)q=q-next。 _(1)_q=p。 p=p-next。while(p-data!=x) q=p。_(2)_(3)_4以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。void Inorder (struct BTreeNode *B
18、T) if(BT!=NULL) (1) 。 (2) 。 (3) 。 期末复习一答案一、单项选择题1C 2B3A4C5A 6D7C8A9D10D 11C 12C 13C14B15D16C17C 18A19B 20C21A22A 23B24B25C 26C27B 28A29C 30D二、填空题1物理(存储)2后进先出、先进先出3乘法 O(n3)4图状 (网状)586树形 图状 7 直接前驱的左指针 8n-1,O(n) 、9 p-next= head。10s-next=p-next。11d=top-data。top=top-next。12左指针 右指针13front= =(rear+1)%MaxSi
19、ze142i 2i+1153416h=s。 1713 18r-next=s。1912012 2121534789622行下标、列下标、非零元素值23主关键字243三、综合应用题1. (1) 图4(2) WPL=3*4+1*4+4*3+6*2+4*2+5*2=58(3) 共11个结点,22个指针域,除根结点外,每个结点对应一个指针域.,共10个指针域非空,故 有 22-10=12个空指针域, 2 (1)图5 2:11103: 11114:1107:008:019:10(2)2n-1个,因为非叶结点数比叶结点数少一个。3 .(1) A1 A2 A4 A7 A8 A5 A9 A3 A6 (2) (3
20、) 图64(1)初始序列 46,79,56,38,40,8440,79,56,38,40,8440,79,56,38,79,8440,38,56,38,79,8440,38,56,56,79,8440,38,46,56,79,84 (2)图65.(1) 图7(2) 二叉排序树或者是一棵空树,或者是一棵具有下列性质的二叉排:若它的左子树 非空,则左子树的所有结点的值都小于它的根结点的值;若它的右子树非空,则右子 树的所有结点的值都大于(若允许结点有相同的值,则大于等于)它的根结点的值。 左,右子树也是一棵二叉排序树,按定义判定树是二叉排序树。 (3) 3次6 (1)3次 (2)4次 (3)图8四
21、、程序填空题1(1)n-1(2)n(3)k=j(4)ai=ak(5)ak=temp2 (1)p(2)q=p(3)(NODE*)malloc(sizeof(NODE)(4)p(5)q=p3.(1)q-next=head。(2)p=p-next。(3)q-next=p-next。4 (1)Inorder(BT-left)(2)printf(“%c”,BT-data)(3) Inorder(BT-right)期末练习二一、单项选择题1 .结构中的元素之间存在一对多的关系是( )。A集合 B线性结构 C树形结构 D图状结构 2在C语言中,顺序存储长度为3的字符串,需要占用( )个字节。A4 B3 C6
22、 D123 .对不带头结点的单向链表,判断是否为空的条件是( )(设头指针为head)。Ahead=NULL Bhead-next= =NULL Chead-next= =head Dhead =NULL 4串函数StrCat(a,b)的功能是进行串( )。A比较 B复制 C赋值 D连接5.在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,可用的语句是( )。 Ap=q-next。p=p-next。 Bp-next=q 。p=p-next。 Cp-next=q-next。q=p。 Dp=p-next。 q-next=p。 6一棵有n个结点采用链式存储的二
23、叉树中,共有( )个指针域为空。 An+1 Bn Cn-1 Dn-27一个栈的进栈序列是1,2,3,4,5,则栈的不可能输出序列是( )(进栈出栈可以交替进行)。A12345 B43512 C45321 D543218设一棵哈夫曼树共有n个非叶结点,则该树有( )个叶结点。An Bn+1 Cn-1 D2n9一个队列的入队序列是2,4,6,8,按该队列的输出序列使各元素依次入栈,该栈的可能输出序列是( )。 A8,6,4,2 B6,2,4,8C8,4,2,6D8,2,4,6 10从一个栈顶指针为top的链栈中删除一个结点时,用变量x保存被删结点的值,则执行( )。 Ax=top-data。 to
24、p=topnext。 Bx=top-data。 Ctop=top-next。 x=top-data。 Dtop=top-next。 x=data。11在一个链队中,假设f和r分别为队头和队尾指针,已生成一个结点p,要为结点p赋 值x,并入队的运算为( )。 A . p-data=x。 p-next=NULL。 f-next=p。 f=p。 B p-data=x。 p-next=NULL 。r-next=p。r=p。 C p-data=x。 p-next=r。r=s。 D p-data=x。 p-next=f。f=s。12一棵完全二叉树共有5层,且第5层上有六个结点,该树共有( )个结点。 A3
25、0 B20 C21 D2313设有一个25阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a7,6在一维数组B中的下标是( )。A34 B14 C26 D27 14在一个无向图中,所有顶点的度数之和等于边数的( )倍。 A3 B2.5 C1.5 D215.以下程序段的结果是 c的值为( )。char a5=“1236789”, int *p=a, int c=0。 while(*p+)c+。 A8, B7 C10 D12 16已知如图1所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。A
26、V1V2V4V8V5V3V6V7 BV1V2V4V5V8V3V6V7CV1V2V4V8V3V5V6V7 DV1V3V6V7V2V4V5V8 图117一棵有23个结点,采用链式存储的二叉树中,共有( )个指针域为空。 A24B25C23D45 18已知如图2所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。 Aabcedf Babcefd Caebcfd Dacfdeb 图219在一棵二叉树中,若编号为i的结点是其双亲结点的左孩子,则双亲结点的顺序编号为( )。 Ai/2B2i-1 C2i+1 Di/2-1 20对二叉排序树进行( )遍历,可以使遍历所得到
27、的序列是有序序列。A按层次 B后序 C中序 D前序21设一棵哈夫曼树共有2n+1个叶结点,则该树有( )个叶结点。 An-1 Bn Cn+1 D2n22在有序表2,4,7,14,34,43,47,64,75,80,90,97,120中,用折半查找法查找值80时,经( )次比较后查找成功。A4 B2C3 D523已知如图3所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。 Aabecdf Bacfebd Caebcfd Daedbfc图324有一个长度为9的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。A25/10 B25/9 C20/9 D17/925已知如图4所示的一个图,若从顶点B出发,按广度优先法进行遍历,则可能得到的一种顶点序列为( )。A.BADEHCFGB.ADEHCGFC.BADECHFG D.BADEHCFG图426排序算法中,从未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较(要求比较次数尽量少),然后将其放入已排序
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1