1、 x=fdata 12算法的时间复杂度与( )有关。 A所使用的计算机 B与计算机的操作系统 C与算法本身 D与数据结构13设有一个20阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第38号元素对应于矩阵中的元素是( )。 Aa10,8 Ba7,6 Ca9,2 Da8,5 14设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为( )。 An-i+1 Bn-i Cn-i-1 Di 15在C语言中,分别存储 “S”和s,各需要占用( )字节。 A一个和两个 B两个 C一个 D两个和一个 16在一个单链表中,p、q分别指向表中
2、两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用的语句是( )。 Ap=q-next Bp-next=q Cp-next=qnext Dq-next=NULL17一棵有n个结点,采用链式存储的二叉树中,共有( )个指针域被有效使用(即指针域为非空)。 An+1 Bn Cn-1 Dn-2 18从一个栈顶指针为top的链栈中删除一个结点时,用变量x保存被删结点的值,则执行( )。 Ax=top-data; top=top-next; Bx=top- Ctop=top- x=top- Dtop=top- x=data;19在一棵二叉树中,若编号为i的结点存在双亲结点,则双
3、亲结点的顺序编号为( )。 Ai/2.0 Bi/2向下取整 C2i+1 Di+2 20在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为( )。 Ar=f- Br=r- Cf=f- Df=r-21设一棵哈夫曼树共有2n+1个结点,则该树有( )个非叶结点。 An Bn+1 Cn-1 D2n 22一个栈的进栈序列是a,b,c,d,e,则栈的不可能输出序列是( )(进栈出栈可以交替进行)。Adceab Bedcba Cdecba Dabcde 23一棵完全二叉树共有4层,且第4层上有2个结点,该树共有( )个非叶子结点(根为第一层)。 A5 B4 C3 D9 24有一个长度为10
4、的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。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),利用快速排序
5、,以第一个关键字为分割元素,经过一次划分后结果为( )。 A30,50,48,56,66,89,94,100,87 B 50,30,48,56,66,89,94,87,100 C48,30,50,56,66,89,94,87,100 D50,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多对多
6、D每一个元素都有一个直接前驱和一个直接后继 30在一个无向图中,所有顶点的度数之和等于边数的( )倍。 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、7存放在 8号位置,其结果是新表中第25号元素的值为_ 。6根据数据元素间关系的不同特性,通常可分为集合、线性、 、 四类基本结构。7在双向链表中,要在p所指的结后插入q所指的结点(设q所指的结点已赋值),其中所用的一条语句(p-next)-prior=q; 的功能是使P所指结点的_指向q 。8要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。则比较的次数和算法的时间复杂度分别为_和 _ 。9设有一个带头结点的,头指针为head的单向链表,p指向表中某一个结点,且有p-next= =NULL,现要删除头结点,并使该单向链表构造成单向循环链表,通过操作head=head- _。1
8、0在一个单向链表中p所指结点之后插入一个s所指向的结点时,应执行_ _ _和p-next=s;的操作。11从一个栈顶指针为top的链栈中删除一个结点时,用d保存被删结点的值,可执行_。(结点的指针域为next,数据域为data) 12在二叉树的链式存储结构中,通常每个结点中设置三个域,它们是值域 、 。13 循环链队列中,设front和rear分别为队头和队尾指针,(最多元素为MaxSize,采用少用一 个元素的模式),判断循环链队列为满的条件为_ 。14一棵二叉树中顺序编号为i的结点,若它存在左、右孩子,则左、右孩子编号分别为_、_。15对稀疏矩阵进行压缩存储,可采用三元组表,一个6行7列的
9、稀疏矩阵A相应的三元组 表共有8个元素,则矩阵A共有_个零元素。16向一个栈顶指针为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对稀疏矩阵进行压
10、缩存储,矩阵中每个非零元素对应的三元组包括该元素的_、_ _和_ _三项信息。23在查找表中,通过记录的某关键字能唯一地确定一个记录,该关键字称为_。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作为叶结点的权,构造一棵哈夫曼树( 要求每个结点的左子树根结点的权小于
11、等于右子树根结点的权),给出相应权重值叶结点的哈夫曼编码。(2) 一棵哈夫曼树有n个叶结点,它一共有多少个结点?简述理由?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)对上述序列用堆排序的方法建
12、立大根堆,要求以二叉树逐次描述建堆过程。5设查找表为(5,6,7,8,9,10,11,12,13,14) (1)画出对上述有序表进行折半查找所对应的判定树(要求以数据元素作为树结点) (2) 给出二叉排序树的定义,针对上述折半查找所对应的判定树的构造过程,说明判定树 是否是二叉排序树(设树中没有相同结点)?(3) 为了查找元素5.5,经过多少次元素间的比较才能确定不能查到?6设查找表为(50,60,75,85,96,98,105,110,120,130) (1) 说出进行折半查找成功查找到元素120需要进行多少次元素间的比较?(2) 为了折半查找元素95,经过多少次元素间的比较才能确定不能查到
13、?(3)画出对上述有序表进行折半查找所对应的判定树(要求以数据元素作为树结点)四、程序填空题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个结点的单向链表的
14、程序,结点中的数据域从前向后依次为1,2,3,n,完成程序中空格部分。NODE *create(n)NODE *head , *p, *q; int i; p=(NODE*)malloc(sizeof(NODE);head= (1) ; (2) ;pnext=NULL; /*建立头结点*/for(i=1; iwhile (q-next!=NULL)q=q- _(1)_ q=p; p=p-while(p-data!=x) q=p;_(2)_(3)_ 4以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结
15、点)。void Inorder (struct BTreeNode *BT) if(BT!=NULL) (1) ; (3) ;期末复习一答案1C 2B 3A 4C 5A 6D 7C 8A 9D 10D 11C 12C 13C 14B 15D 16C 17C 18A 19B 20C 21A 22A 23B 24B 25C 26C 27B 28A 29C 30D1物理(存储)2后进先出、先进先出3乘法 O(n3) 4图状 (网状)586树形 图状 7 直接前驱的左指针 8n-1,O(n) 、9 p-next= head;10s-next=p-11d=top-top=top-12左指针 右指针13f
16、ront= =(rear+1)% MaxSize142i 2i+1153416h=s;1713 18r-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个空指针域, (1)图5 2:11103: 11114:1107:008:019:10(2)2n-1个,因为非叶结点数比叶结点数少一个。3 .(1) A1 A2 A4 A7 A8 A5 A9
17、A3 A6 (2) (3) 图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次 (
18、2)4次图8 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-(3) q-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 D123 .对不带头结点的单向链表
19、,判断是否为空的条件是( )(设头指针为head)。Ahead=NULL Bhead-next= =NULL Chead-next= =head Dhead =NULL 4串函数StrCat(a,b)的功能是进行串( )。 A比较 B复制 C赋值 D连接5. 在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,可用的语句是( )。 Ap=q- Bp-next=q ; Cp-next=q- Dp=p- q-next=p;6一棵有n个结点采用链式存储的二叉树中,共有( )个指针域为空。 An+1 Bn Cn-1 Dn-27一个栈的进栈序列是1,2,3,4,5,
20、则栈的不可能输出序列是( )(进栈出栈可以交替进行)。A12345 B43512 C45321 D54321 8设一棵哈夫曼树共有n个非叶结点,则该树有( )个叶结点。 An Bn+1 Cn-1 D2n9一个队列的入队序列是2,4,6,8,按该队列的输出序列使各元素依次入栈,该栈的可能输出序列是 ( )。 A8,6,4,2 B6,2,4,8 C8,4,2,6 D8,2,4,6 10从一个栈顶指针为top的链栈中删除一个结点时,用变量x保存被删结点的值,则执行( )。 Ax=top- top=topnext; Bx=top- Dtop=top-11在一个链队中,假设f和r分别为队头和队尾指针,已
21、生成一个结点p,要为结点p赋 值x,并入队的运算为( )。 A . p-data=x; p-next=NULL; f- f=p;B p-next=NULL ;r-r=p; C p-next=r;r=s; D p-next=f;f=s;12一棵完全二叉树共有5层,且第5层上有六个结点,该树共有( )个结点。 A30 B20 C21 D2313设有一个25阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a7,6在一维数组B中的下标是( )。A34 B14 C26 D27 14在一个无向图中,所有顶点的度数之和等于边数的( )倍。 A
22、3 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出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。 AV1V2V4V8V5V3V6V7 BV1V2V4V5V8V3V6V7CV1V2V4V8V3V5V6V7 DV1V3V6V7V2V4V5V8 图117一棵有23个结点,采用链式存储的二叉树中,共有( )个指针域为空。 A24 B25 C23 D45 18已知如图2所示的一个图,若从顶点
23、a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。 Aabcedf Babcefd Caebcfd Dacfdeb19在一棵二叉树中,若编号为i的结点是其双亲结点的左孩子,则双亲结点的顺序编号为( )。 Ai/2 B2i-1 C2i+1 Di/2 -1 20对二叉排序树进行( )遍历,可以使遍历所得到的序列是有序序列。 A按层次 B后序 C中序 D前序21设一棵哈夫曼树共有2n+1个叶结点,则该树有( )个叶结点。 An-1 Bn Cn+1 D2n 22在有序表2,4,7,14,34,43,47,64,75,80,90,97,120中,用折半查找法查找值80时,经( )次比较后查找成功。A4 B2 C3 D523已知如图3所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1