收藏 分享(赏)

数据结构((本)期末综合练习(2012年12月).doc

上传人:dzzj200808 文档编号:2608332 上传时间:2018-09-23 格式:DOC 页数:36 大小:366.50KB
下载 相关 举报
数据结构((本)期末综合练习(2012年12月).doc_第1页
第1页 / 共36页
数据结构((本)期末综合练习(2012年12月).doc_第2页
第2页 / 共36页
数据结构((本)期末综合练习(2012年12月).doc_第3页
第3页 / 共36页
数据结构((本)期末综合练习(2012年12月).doc_第4页
第4页 / 共36页
数据结构((本)期末综合练习(2012年12月).doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、 1数据结构期末综合练习2012 年 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=r next; Br=r next; x=rdataCx=fdata;f=f next; Df=f next; x=fdata 12算法的时间复杂度与( )有关。A所使用的计算机 B与计算机的操作系统 C与算法本身

4、 D与数据结构13设有一个 20 阶的对称矩阵 A,采用压缩存储的方式,将其下三角部分以行序为主序存2储到一维数组 B 中(数组下标从 1 开始) ,则数组中第 38 号元素对应于矩阵中的元素是( ) 。Aa 10,8 Ba 7,6 Ca 9,2 Da 8,5 14设有一个长度为 n 的顺序表,要删除第 i 个元素需移动元素的个数为( ) 。An-i+1 Bn-i Cn-i-1 Di 15在 C 语言中,分别存储 “S”和s ,各需要占用( )字节。A一个和两个 B两个 C一个 D两个和一个 16在一个单链表中,p、q 分别指向表中两个相邻的结点,且 q 所指结点是 p 所指结点的直接后继,现

5、要删除 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-data; Ctop=top-next; x=top-data; Dtop=top-next; x=data;19在一棵二叉树中,若编号为 i 的结点存在双亲结点

6、,则双亲结点的顺序编号为( ) 。Ai/2.0 Bi/2 向下取整 C2i+1 Di+2 20在一个链队中,假设 f 和 r 分别为队头和队尾指针,则删除一个结点的运算为( ) 。Ar=f-next; Br=r-next; Cf=f-next; Df=r-next;21设一棵哈夫曼树共有 2n+1 个结点,则该树有( )个非叶结点。An Bn+1 Cn-1 D2n 22一个栈的进栈序列是 a,b,c,d,e,则栈的不可能输出序列是( ) (进栈出栈可以交替进行) 。Adceab Bedcba Cdecba Dabcde 23一棵完全二叉树共有 4 层,且第 4 层上有 2 个结点,该树共有(

7、)个非叶子结点(根为第一层)。A5 B4 C3 D9 24有一个长度为 10 的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( ) 。A26/10 B29/10 C29/9 D31/1025如图 1 所示的一个图,若从顶点 a 出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( ) 。Aabedfc Bacfebd Caebcdf Daebcfd bd fe ca3图 126排序算法中,从未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较(要求比较次数尽量少) ,然后将其放入已排序序列的正确位置的方法是( ) 。A冒泡 B直接插入 C折半插入

8、 D选择排序27一组记录的关键字序列为(56,30,89,66,48,50,94,87,100) ,利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( ) 。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 中的下标是( ) 。A3

9、3 B32 C85 D4129线性表以( )方式存储,能进行折半查找。A关键字有序的链接 B顺序 C关键字有序的顺序 D数组 C多对多 D每一个元素都有一个直接前驱和一个直接后继 30在一个无向图中,所有顶点的度数之和等于边数的( )倍。A3 B2.5 C1.5 D2二、填空题1. 数据的逻辑结构在计算机中的表示称为_结构。 2栈和队列的操作特点分别是_ _和 _ _。3. 求两个 n 阶矩阵的乘积,算法的基本操作为_,时间复杂度为 _。 4结构中的数据元素存在多对多的关系称为_ _结构。5 设有一个长度为 25 的顺序表,第 8 号元素到第 25 号元素依次存放的值为8,9,10,11,25

10、,某人想要在第 8 个元素前插入 1 个元素 7(也就是插入元素作为新表的第 8 个元素) ,他的做法是从第 8 号元素开始,直到第 25 号元素依次向后移动 1 个位置,然后把 7 存放在8 号位置,其结果是新表中第 25 号元素的值为_ 。 6根据数据元素间关系的不同特性,通常可分为集合、线性、 、 四类基本结构。7在双向链表中,要在 p 所指的结后插入 q 所指的结点(设 q 所指的结点已赋值) ,其中所用的一条语句(p-next)-prior=q; 的功能是使 P 所指结点的_指向 q 。 8要求在 n 个数据元素中找其中值最大的元素,设基本操作为元素间的比较。则比较的次数和算法的时间

11、复杂度分别为_和 _ 。9设有一个带头结点的,头指针为 head 的单向链表,p 指向表中某一个结点,且有p-next= =NULL,现要删除头结点,并使该单向链表构造成单向循环链表,通过操作 head=head-next; _。 10在一个单向链表中 p 所指结点之后插入一个 s 所指向的结点时,应执行_ _ _和 p-next=s;的操作。11从一个栈顶指针为 top 的链栈中删除一个结点时,用 d 保存被删结点的值,可执行4_。(结点的指针域为 next,数据域为 data) 12在二叉树的链式存储结构中,通常每个结点中设置三个域,它们是值域 、。13 循环链队列中,设 front 和

12、rear 分别为队头和队尾指针,(最多元素为 MaxSize,采用少用一个元素的模式),判断循环链队列为满的条件为 _ 。14一棵二叉树中顺序编号为 i 的结点,若它存在左、右孩子,则左、右孩子编号分别为_、_。15对稀疏矩阵进行压缩存储,可采用三元组表,一个 6 行 7 列的稀疏矩阵 A 相应的三元组表共有 8 个元素,则矩阵 A 共有_个零元素。 16向一个栈顶指针为 h 的链栈中插入一个 s 所指结点时,可执行 s-next=h;和_。17.一棵有 20 个结点的 4 度的树,其中 3 度结 1 个,2 度结 1 个,1 度结 2 个,则该树共有_个叶结点。 18在一个链队中,设 f 和

13、 r 分别为队头和队尾指针,则插入 s 所指结点的操作为_和 r=s; (结点的指针域为 next)19一棵有 18 个结点的二叉树,其 2 度结点数的个数为 8,则该树共有_个 1 度结点 20设有一棵深度为 4 的完全二叉树,第四层上有 5 个结点,该树共有_个结点。(根所在结点为第 1 层)21如图 2 所示的二叉树,其先序遍历序列为_。 3c7gd6f5e4dc2b1a8hd9图 222对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的_、_ _和_ _三项信息。23在查找表中,通过记录的某关键字能唯一地确定一个记录,该关键字称为_。24在对一组记录(55,39,97,

14、22,16,73,65,47,88)进行直接插入排序时,当把第 7 个记录 65插入到有序表时,为寻找插入位置需比较_次。三、综合题 1 (1)对给定权值 3,1 ,4,4,5,6,构造深度为 5 的哈夫曼树。(设根为第 1 层)(2) 求树的带权路径长度。(3)链接存储上述哈夫曼树,结点中共有多少个个指针域为空,说明理由.52(1)以 2,3,4,7,8,9 作为叶结点的权,构造一棵哈夫曼树 ( 要求每个结点的左子树根结点的权小于等于右子树根结点的权),给出相应权重值叶结点的哈夫曼编码。(2) 一棵哈夫曼树有 n 个叶结点,它一共有多少个结点?简述理由?3. (1) 如下的一棵树,给出先序遍

15、历序列(2) 把 1,2,3,4,5,6,7,8,9 填人,使它成为一棵二叉排序树提示:设图中的树是二叉排序树,找出中序遍历序列与 1,2,9 的对应关系(3) 请在该树中再插入一个结点 3.5 作为叶结点,并使它仍然是一棵二叉排序树。A1A2A43A7A5A9A8A3A6图 34一组记录的关键字序列为(46,79,56,38,40,84)(1)利用快速排序的方法,给出以第一个记录为基准得到的一次划分结果(给出逐次交换元素的过程,要求以升序排列)(2)对上述序列用堆排序的方法建立大根堆,要求以二叉树逐次描述建堆过程。5设查找表为(5,6,7,8,9,10,11,12,13,14) (1)画出对

16、上述有序表进行折半查找所对应的判定树(要求以数据元素作为树结点)(2) 给出二叉排序树的定义,针对上述折半查找所对应的判定树的构造过程 ,说明判定树6是否是二叉排序树(设树中没有相同结点 )?(3) 为了查找元素 5.5,经过多少次元素间的比较才能确定不能查到?6设查找表为(50,60,75,85,96,98,105,110,120,130) (1) 说出进行折半查找成功查找到元素 120 需要进行多少次元素间的比较?(2) 为了折半查找元素 95,经过多少次元素间的比较才能确定不能查到?(3)画出对上述有序表进行折半查找所对应的判定树(要求以数据元素作为树结点)四、程序填空题1以下函数为直接

17、选择排序算法,对 a1,a2,an中的记录进行直接选择排序,完成程序中的空格typedef struct int key;NODE;void selsort(NODE a,int n)int i,j,k;NODE temp;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 Inor

18、der (struct BTreeNode *BT) if(BT!=NULL)(1) ;(2) ;(3) ;期末复习一答案一、单项选择题1C 2B 3A 4C 5A 6D 7C 8 A 9D 10D 11C 812C 13C 14B 15 D 16C 17C 18A 19B 20C 21A 22A 23B 24B 25C 26C 27B 28A 29C 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=

19、top-next;12左指针 右指针13front= =(rear+1)% MaxSize142i 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=5865435423418145197896 43453 12139(3) 共 11 个结点,22 个指针域,除根结点外,每个结点对应一个指针域 .,共 10 个指针域非空,故 有 22-10=12 个空指针域, 2(1)图 52:11103: 11114

20、:1107:008:019:10(2)2n-1 个,因为非叶结点数比叶结点数少一个。3 .(1) A1 A2 A4 A7 A8 A5 A9 A3 A6(2)(3)8 9597243331815107421563893.5图 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) 97 1014118512136567938 40 8446847938 4046566567938 40467938

21、 4084 8456 4611图 7(2) 二叉排序树或者是一棵空树,或者是一棵具有下列性质的二叉排:若它的左子树 非空,则左子树的所有结点的值都小于它的根结点的值;若它的右子树非空,则右子树的所有结点的值都大于(若允许结点有相同的值,则大于等于)它的根结点的值; 左,右子树也是一棵二叉排序树,按定义判定树是二叉排序树。(3) 3 次6(1)3 次(2)4 次(3)图 8四、程序填空题1 (1)n-1(2)n(3)k=j(4)ai=ak(5)ak=temp9675 9813010585501100512060122 (1)p(2)q=p(3)(NODE*)malloc(sizeof(NODE)

22、(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 D123 .对不带头结点的单向链表,判断是否为空的条件是( ) (设头指针为 head) 。Ahead=NULL Bhead-next= =NUL

23、L 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 个结点采用链式存储的二叉树中,共有( )个指针域为空。An+1 Bn Cn-1 Dn-27一个栈的进栈序列是 1,2,3,4,5,则栈的不可能输出序列

24、是( ) (进栈出栈可以交替进行) 。A12345 B43512 C45321 D54321 8设一棵哈夫曼树共有 n 个非叶结点,则该树有( )个叶结点。An Bn+1 Cn-1 D2n9一个队列的入队序列是 2,4,6,8,按该队列的输出序列使各元素依次入栈,该栈的可能输出序列是 ( ) 。13A8,6,4,2 B6,2,4,8 C8,4,2,6 D8,2,4,6 10从一个栈顶指针为 top 的链栈中删除一个结点时,用变量 x 保存被删结点的值,则执行( ) 。Ax=top-data; top=topnext; Bx=top-data; Ctop=top-next; x=top-data

25、; 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 层上有六个结点,该树共有( )个结点。A30 B20 C21 D2313设有一个 25 阶的对称矩阵 A,采用压缩存储的

26、方式,将其下三角部分以行序为主序存储到一维数组 B 中(数组下标从 1 开始) ,则矩阵中元素a 7,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出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( ) 。AV 1V2V4V8V5V3V6V7 BV

27、1V2V4V5V8V3V6V7CV 1V2V4V8V3V5V6V7 DV 1V3V6V7V2V4V5V8图 117一棵有 23 个结点,采用链式存储的二叉树中,共有( )个指针域为空。V6 V7V1V2 V3V8V4 V514A24 B25 C23 D45 18已知如图 2 所示的一个图,若从顶点 a 出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( ) 。Aabcedf Babcefd Caebcfd Dacfdeb图 219在一棵二叉树中,若编号为 i 的结点是其双亲结点的左孩子,则双亲结点的顺序编号为( ) 。Ai/2 B2i-1 C2i+1 Di/2 -1 20对二叉排序树

28、进行( )遍历,可以使遍历所得到的序列是有序序列。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 出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( ) 。Aabecdf Bacfebd Caebcfd Daedbfc b d fe ca图 324有一个长度为 9 的有序表,按折半查找对该表

29、进行查找,在等概率情况下查找成功的平均比较次数为( ) 。bd fe ca15A25/10 B25/9 C20/9 D17/925已知如图 4 所示的一个图,若从顶点 B 出发,按广度优先法进行遍历,则可能得到的一种顶点序列为( ) 。A.BADEHCFG B.ADEHCGF C.BADECHFG D.BADEHCFG F GV7AB CHV8DV4E图 426排序算法中,从未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较(要求比较次数尽量少) ,然后将其放入已排序序列的正确位置的方法是( ) 。A冒泡 B直接插入 C折半插入 D选择排序27一组记录的关键字序列为(46,38,

30、56,40,79,84) ,利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( ) 。A40,38,46,79,56,84 B40,38,46,56,79,84C40,38,46,84,56,79 D38,40,46,56,79,84 28一组记录的关键字序列为(46,79,56,38,40,84) ,利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( ) 。A40,38,46,79,56,84 B40,38,46,56,79,84C40,38,46,84,56,79 D38,40,46,56,79,8429在有序表21,23,28,33,43,45,46,73,77,

31、78,89,99,106中,用折半查找值 43 时,经( )次比较后查找成功。A6 B3 C8 D4 30排序方法中,从尚未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为( )排序。A归并 B插入 C快速 D选择二、填空题1. 本书中介绍的树形结构和_ 属非线性结构。 2在二叉树的链式存储结构中,通常每个结点中设置三个域,它们是_、 、右指针。3设有一个长度为 18 的顺序表,要在第 4 个元素之前插入 2 个元素(也就是插入元素作为新表的第 5 个和第 4 个元素) ,则最少要移动元素的个数为( ) 。 4一棵二叉树中顺序编号为 i 的结点,若它存在左、右孩子,则

32、左、右孩子编号分别为16_ _、_ _。5在双向链表中,要删除 p 所指的结点,可以先用语句(p-prior)-next=p-next;然再用语句_。 6串的两种最基本的存储方式是_ _和 _ _。7在一个单向链表中 p 所指结点之后插入一个 s 所指向的结点时,应执行 s-next=p-next;和 _ _的操作. 8一棵有 2n-1 个结点的二叉树,其每一个非叶结点的度数都为 2,则该树共有_个叶结点。9一个栈和一个队列的输入序列都为 abcdefg,它们可能有相同的输出序列吗?_。 (若没有则回答没有,若有则写出序列,进栈出栈可以交替进行) 。10对于一棵具有 n 个结点的二叉树,其相应

33、的链式存储结构中共有_个指针域为空。11.从一个栈顶指针为 top 的链栈中取栈顶元素,用 d 保存栈顶元素的值,可执行_。(结点的数据域为 data) 12_遍历二叉排序树可得到一个有序序列。13. 循环链队列中,设 front 和 rear 分别为队头和队尾指针, (最多元素为 MaxSize,),判断循环链队列为空的条件是_为真 。14如图 5 所示的二叉树,其后序遍历序列为 。图 515. 对稀疏矩阵进行压缩存储,可采用三元组表,设 a 是稀疏矩阵 A 相应的三元组表类型(结构体类型)变量,a 中的一个成员项是三元组类型的结构体数组 data,按书中定义,若a.data0.i=2;a.

34、data0.j=3; a.data0.v=16; 它提供的 A 数组的相关信息有_16如图 6 所示的二叉树,其先序遍历序列为_ _。e fgibachdgfabdec17图 617设有一棵深度为 5 的完全二叉树,该树共有 20 个结点,第五层上有 个叶结点。(根所在结点为第 1 层) 18图的深度优先搜索和广度优先搜索序列不一定是唯一的。此断言是_的。(回答正确或不正确) 19中序遍历_树可得到一个有序序列。 20二叉树为二叉排序的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法是_的。(回答正确或不正确) 21如图 7 所示的二叉树,其后序遍历序列为_。 3c7

35、gd6f5e4dc2b1a8hd9图 722对记录序列排序是指按记录的某个关键字排序,记录序列按_排序结果是唯一的。23 .给定一组权重值,构造哈夫曼树,哈夫曼树的高度一定是唯一的,这种说法是_的。(回答正确或不正确 ) 24按某关键字对记录序列排序,若 在排序前和排序后仍保持它们的前后关系,则排序算法是稳定的,否则是不稳定的。三、综合题1. (1) 说明什么是顶点活动网(AOV 网)和拓扑序列(2)设有向图 G 如下,写出 3 种拓扑序列,(3)在图 G 中增加一条边,使图 G 仅有一条拓扑序列18abcd图 82设查找表为(16,15,20,53,64,7),(1)用冒泡法对该表进行排序(

36、要求升序排列) ,写出每一趟的排序过程,通常对 n 个元素进行冒泡排序要进行多少趟冒泡?第 j 趟要进行多少次元素间的比较?(2)在排序后的有序表的基础上,画出对其进行折半查找所对应的判定树.( 要求以数据元素作为树结点)3如下是一棵二叉排序树,A1,A2,A9 代表 1,2,3,9 中各个不同数字,(1)给出对该树中序遍历的结果(2) A3,A5,A7 的值各为多少?(3)请在该树中再插入一个结点 9 .5 作为叶结点,并使它仍然是一棵二叉排序树A1A2A4A7A5A9A8A3A6图 94(1) 设有查找表5,14,2,6,18,7,4,16,3,依次取表中数据,构造一棵二叉排序树。(2)说

37、明如何由序列的二叉排序树得到相应序列的排序结果,对上述二叉排序给出中序遍历的结果。195(1) 设有查找表17,26,14, 16,15,30,18,19,28,依次取表中数据构造一棵二叉排序树.(2) 对上述二叉树给出后序遍历的结果(3). 对上述二叉树给出中后序遍历的结果(4) 在上述二叉树中查找元素 15 共要进行多少次元素的比较?6 (1)对给定权值 2,1,3,3,4,5,构造哈夫曼树。(2)同样用上述权值构造另一棵哈夫曼树,使两棵哈夫曼树有不同的高度,并分别求两棵树的带权路径长度。四、程序填空题1以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结点的指针,否则,返回值是指向树

38、结点的结构指针 p(查找成功 p 指向查到的树结点,不成功 p 指向为NULL)完成程序中的空格typedef struct Bnode int key;struct Bnode *left;struct Bnode *right; Bnode;Bnode *BSearch(Bnode *bt, int k)/* bt用于接收二叉排序树的根结点的指针,k用以接收要查找的关键字*/ Bnode *p;if(bt= _(1)_)return (bt);p=bt;while(p-key!= _(2)_) if(kkey) _(3)_;else _(4)_; if(p=NULL) break; ret

39、urn(_(5)_);203 .设有一个头指针为 head 的不带头结点单向链表,p、q 是指向链表中结点类型的指针变量,p 指向链表中结点 a, (设链表中没有结点的数据域与结点 a 的数据域相同),写出相关语句(1).使该单向链表成为单向循环链表(2)插入结点 s,使它成为 a 结点的直接前驱q=p; x=p-data;while (_(1)_ )q=q-next; q-next=head;q=p; p=p-next;while(p-data!=x) q=p;_(2)_s-next=p;_(3)_答案一、单项选择题1C 2A 3A 4D 5D 6A 7B 8B 9A 10A 11B 12C

40、 13D 14 D 15B 16A 17A 18B 19 A 20C 21C 22A 23D 24B 25C 26C 27B 28B 29B 30D二、填空题1图状结构2值域 左指针31542i 和 2i+1 5 (p-next)-prior=p-prior ;6顺序存储 链式存储 7 p-next=s;8n 9abcdefg10n+1 11d=top-data;12中序13front= =rear14gdbeihfca15A 的第一个非零元素的下标为 2,3 ,元素为 16 16abdefcg17518正确 19二叉排序20不正确 215198764322122主关键字23不正确24关键字相

41、等的记录三、综合应用题1(1)原序列 16 15 20 53 64 715 16 20 53 7 64 n-1 趟15 16 20 7 53 64 n-j 次15 16 7 20 53 6415 7 16 20 53 647 15 16 20 53 64(2)图 102(1)原序列 16 15 20 53 64 715 16 20 53 7 64 n-1 趟15 16 20 7 53 64 n-j 次15 16 7 20 53 6415 7 16 20 53 647 15 16 20 53 64(2)图 11715 20 641653715 20 64165322(3)平均查找长度= (1*1

42、+2*2+3*3)/6=14/63(1)图 12(2)中序遍历中序 2,3,4,5,6,7,14,16,184(1)图 13(2)中序遍历中序 2,3,4,5,6,7,14,16,185(1) 24 61673185145 3 41811 76331224 616731851423wpl1=45(2)图 15wpl2=456 (1)答 wpl1=45四、程序填空题1 (1)NULL(2)k(3)p=p-left(4)p=p-right(5)p2 187 11312 334 6 55 3 41811 76331224(1)(3)q-next=s;4(1)Postorder(BT-left)(2)Postorder(BT-right)(3) printf(“%c”,BT-data)期末练习三一、单项选择题1. 数据结构在计算机内存中的表示是指 ( ) 。A数据元素之间的关系 B数据的存储结构 C数据元素的类型 D数据的逻辑结构 2. 在数据结构和算法中,与所使用的计算机有关的是 ( ) 。A数据元数间的抽象关系 B数据的存储结构 C算法的时间复杂度 D数据的逻辑结构 3 . 结构中的元素之间存在多对多的关系是 ( ) 。A集合 B线性结构 C树形结构 D图状结构 4 .对顺序表,以下叙述中正确的是 ( )。A用一组地

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报