ImageVerifierCode 换一换
格式:DOC , 页数:49 ,大小:531.42KB ,
资源ID:4715203      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4715203.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(数据结构(第4版)习题及实验参考答案-数据结构复习资料(c语言版).doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据结构(第4版)习题及实验参考答案-数据结构复习资料(c语言版).doc

1、数据结构(第4版)习题及实验参考答案数据结构复习资料完整版数据结构基础及深入及考试复习资料 习题及实验参考答案见附录结论 1、数据的逻辑结构是指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。 2、数据的物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。存储结构可分为4大类:顺序、链式、索引、散列 3、抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的服务(或称操作)。它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。 4、算法:是对

2、特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转换为输出的计算步骤。 5、在数据结构中,从逻辑上可以把数据结构分成( C ) A、动态结构和表态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构6、算法的时间复杂度取决于( A ) A、问题的规模 B、待处理数据的初态 C、问题的规模和待处理数据的初态线性表 1、线性表的存储结构包括顺序存储结构和链式存储结构两种。 2、表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为( E ),删除一个元素需要移动的元素的个数为( A )。 A、(n-1)

3、/2 B、n C、n+1 D、n-1 E、n/2 F、(n+1)/2 G、(n-2)/2 3、“线性表的逻辑顺序与存储顺序总是一致的。”这个结论是( B ) A、正确的 B、错误的 C、不一定,与具体的结构有关 4、线性表采用链式存储结构时,要求内存中可用存储单元的地址( D ) A、必须是连续的 B、部分地址必须是连续的C一定是不连续的D连续或不连续都可以 5、带头结点的单链表为 空的判定条件是( B ) A、head=NULL B、head-next=NULL C、head-next=head D、head!=NULL 6、不带头结点的单链表head为空的判定条件是( A )A、head=

4、NULL B、head-next=NULL C、head-next=head D、head!=NULL 7、非空的循环单链表head的尾结点P满足( C ) A、p-next=NULL B、p=NULL C、p-next=head D、p=head 8、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( B ) A、O(1) B、O(n) C、O(n2) D、O(nlog2n) 9、在一个单链表中,若删除p所指结点的后继结点,则执行( A )A、p-next=p-next-next;B、p=p-next;p-next=p-next-next;C、p-next=p-next

5、;D、p= p-next-next; 10、在一个单链表中,若在p所指结点之后插入s所指结点,则执行( B ) A、s-next=p;p-next=s; B、s-next=p-next;p-next=s;C、s-next=p-next;p=s;D、p-next=s;s-next=p;11、在一个单链表中,已知q是p的前趋结点,若在q和p之间插入结点s,则执行( C )A、s-next=p-next;p-next=s;B、p-next=s-next;s-next=p;C、q-next=s;s-next=p;D、p-next=s;s-next=q;12、在线性结构中,第一个结点 没有 前趋结点,其

6、余每个结点有且只有 1 个前趋结点。栈和队列1、在栈操作中,输入序列为(A,B,C,D),不可能得到的输出数列是( D ) A、(A,B,C,D) B、(D,C,B,A) C、(A,C,D,B) D、(C,A,D,B)2、设栈ST用顺序存储结构表示,则栈ST为空的条件( B ) A、ST.top=ST.base0 B、ST.top=ST.base=0 C、ST.top=ST.basen D、ST.top=ST.base=n3、向一个栈顶指针为HS的链栈中插入一个s结点时,执行( C ) A、HS-next=s; B、s-next=HS-next;HS-next=s; C、s-next=HS;H

7、S=S; D、s-next=HS;HS=HS-next;4、从一个栈顶指针为HS的链栈中删除一个结点,用x保存被删结点的值,则执行( C ) A、x=HS;HS=HS-next; B、HS=HS-next;x=HS-data; C、x=HS-data;HS=HS-next; D、s-next=HS;HS=HS-next;5、用单链表表示的链示队列的队头在链表的( A )位置。 A、链头 B、链尾 C、链中6、判定一个链队列(最多元素个数为n)为空的条件是(A)、.front=Q.rear B、Q.front!=Q.rearC、Q.front=(Q.rear+1)%n D、Q.front!=(Q

8、.rear+1)%n7、在链队列中,插入要所指结点需顺序执行的指令是(B)A、Q.front-next=s;f=s;B、Q.rear-next=s;Q.rear=s;C、s-next=Q.rear;Q.rear=s;D、s-next=Q.front;Q.front=s;8、在一个链队列Q中,删除一个结点需要执行的指令是( C ) 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; 9、栈和队列的共同点( C ) A、都是先进

9、后出 B、都是先进先出 C、只允许在端点处插入和删除元素D、没有共同点10、栈的特点是_先进后出,队列的特点是先进先出11、线性表、栈和队列都是线性结构,可以在线性表的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入元素和在队首删除元素。串和数组1、设串s1=ABCDEFG,s2=PQRST,函数Concat(x,y)返回x和y串的连接串,Substr(s,I,j)返回串s从序号i开始的j个字符组成的子串,length(s)返回串s的长度,则Concat(Substr(s1,2, length(s2), Substr(s1,length(s2),2)的结果串是(

10、D )A、BCDEF B、BCDEFG C、BCPQRST D、BCDEFEF2、串是一种特殊的线性表,其特殊性体现在( D ) A、可以顺序存储 B、数据元素是一个字符C、可以链接存储 D、数据元素可以是多个字符3、设有两个串p和q,求q在p中首次出现的位置的运算称作( B )A、连接 B、模式匹配 C、求子串联 D、求串长4、串的两种最基本的存储方式是顺序存储方式和链接存储方式。树和二叉树1、树最合适用来表示( B )A、有序数据元素 B、元素之间具有分支层次关系的数据C、无序数据元素 D、元素之间无联系的数据2、按照二叉树的定义,具有3个结点的二叉树有( C )种。A、3 B、4 C、5

11、 D、63、在一棵有n个结点的二叉树中,若度为2的结点数为n2,度为1的结点数为n1,度为0的结点数为n0,则树的最大高度为( E ),其叶结点数为( G );树的最小高度为( B ),其叶结点数为( G );若采用链表存储结构,则有( I )个空链域。A、n/2 B、log2n+1 C、log2n D、n E、n0 + n1 + n2 F、n1 + n2 G、n2 +1 H、1 I、n+1 J、n1 K、n2 L、n1 +14、在一棵二叉树上第5层的结点数最多为( B )。(假设根结点的层数为0)A、8 B、16 C、15 D、325、深度为5的二叉树至多有( C )个结点。A、16 B、3

12、2 C、31 D、106、在一非空二叉树的中序遍历序列中,根结点的右边( A )A、只有右子树上的所有结点 B、只有右子树上的部分结点C、只有左子树上的部分结点 D、只有左子树上的所有结点7、一棵完全二叉树按层次遍历的序列为ABCDEFGHI,则在先序遍历中结点E的直接前趋为( D ),后序遍历中结点B的直接后继是( E )。A、B B、D C、A D、I E、F F、C8、已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是( D )A、acbed B、decab C、deabc D、cedba9、在树形结构中,树根结点没有_前趋_结点,其余每个结点有且只有_

13、1_个前趋结点;叶子结点没有_后继_结点,其余每个结点的后继结点可以_任意多个_。10、有一棵树如图所示,回答下面的问题:K1K7K6K5K2K3K4这棵树的根结点是_K1_,这棵树的叶子结点是_K2,K5,K7,K4_;结点k3的度是_2_;这棵树的度为_3_;这棵树的深度是_4_;结点k3的子女是_K5,K6_;结点k3的父结点是_K1_.11、已知一棵二叉树的中序遍历序列为CDBAEGF,前序遍历序列为ABCDEFG,试问能不能惟一确定一棵二叉树,若能请画出该二叉树。若给定前序遍历序列和后序遍历序列,能否惟一确定一棵二叉树,说明理由。答:由中序遍历序列和前序遍历序列或中序遍历序列和后序遍

14、历序列可以惟一确定一棵二叉树。基本思想是前序(后序)定根,中序分左右。对于给定的前序和中序序列。可确定根结点为A,以A为根的左子树结点为B,C,D,右子树结点为E,F,G。进一步可确定所有子树的根结点,因而也就确定了整个二叉树。对应的二叉树如图所示:FADGFECB由前序遍历和后序遍历序列不能惟一确定一棵二叉树。如图所示为4棵不同的二叉树,它们的前序遍历序列都是ABC,而后序遍历序列都是CBA。ACBCBAACBACB12、设二叉树bt的存储结构如下:12345678910left00237580101datajhfdbacegiright0009400000其中bt为树根结点指针,left,

15、right分别为结点的左右孩子指针域,data为结点的数据域,请完成下列各题:画出二叉树bt的逻辑结构写出按前序、中序和后序遍历二叉树bt所得到的结点序列。答:二叉树bt的逻辑结构如图所示:12ajighfdecb前序遍历:abcedfhgij中序遍历:ecbhfdjiga后序遍历:echfjigdba13、给定一棵以二叉链表存储结构表示的二叉树,其根结点指针为T,试写出求二叉树的叶子数目的算法。int CountLeaf (BiTree T)/返回指针T所指二叉树中所有叶子结点个数 if (!T ) return 0; if (!T-lchild & !T-rchild) return 1;

16、 else m = CountLeaf( T-lchild); n = CountLeaf( T-rchild); return (m+n); /else / CountLeaf14、给定一棵以二叉链表存储结构表示的二叉树,其根结点指针为T,试写出求二叉树的深度的算法。int Depth (BiTree T ) / 返回二叉树的深度 if ( !T ) depthval = 0; else depthLeft = Depth( T-lchild ); depthRight= Depth( T-rchild ); depthval = 1 + (depthLeft depthRight ? de

17、pthLeft : depthRight); return depthval;图1、一个有n个顶点的无向图最多有( C )条边。A、n B、n(n-1) C、n(n-1)/2 D、2n2、具有6个顶点的无向图至少应有( A )条边才能确保是一个连通图。A、5 B、6 C、7 D、83、存储稀疏图的数据结构常用的是( C )A、邻接矩阵 B、三元组 C、邻接表 D、十字链表4、在有向图的邻接表存储结构中,顶点V在表结点中出现的次数是( C )A、顶点V的度 B、顶点V的出度 C、顶点V的入度 D、依附于顶点V的边数5、用DFS遍历一个无环有向图,并在DFS算法退栈返回时,打印出相应的顶点,则输出

18、的顶点序列是( A )A、逆拓扑有序的 B、拓扑有序的 C、无序的6、已知一个图如图所示,若从顶点a出发按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( D ),按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( B )。A、abecdf B、acfebd C、acebfd D、acfdebA、abcedf B、abcefd C、abedfc D、acfdebCacfdeb7、采用邻接表存储的图的广度优先搜索遍历算法类似于二叉树的( D )A、中序遍历 B、先序遍历 C、后序遍历 D、按层遍历8、已知一个图如图所示,则由该图得到的一种拓扑序列为( A )165432A、V1,V4,V

19、6,V2,V5,V3 B、V1,V2,V3,V4,V5,V6C、V1,V4,V2,V3,V6,V5 D、V1,V2,V4,V6,V3,V59、在图形结构中,每个结点的前趋结点数和后续结点数可以_任意多个_。10、在AOE网中,从源点到汇点各活动时间总和最长的路径称为关键路径。11、给出图G,如图所示:1111098765432(1)给出图G的邻接表(画图即可)(2)在你给出的邻接表的情况下,以顶点V4为根,画出图G的深度优先生成树和广度优先生成树。(3)将你画出的广度优先生成树转换为对应的二叉树。答: (1)图的邻接表如下图所示:略(2)以顶点V4为根的深度优先生成树和广度优先生成树如图所示1

20、111098765432d1111098765432(3)广度优先生成树转换成二叉树如下图所示11109117863452附录 习题及实验参考答案习题1参考答案1.1.选择题(1). A. (2). A. (3). A. (4). B.,C. (5). A. (6). A. (7). C. (8). C. (9). B. (10.) A.1.2.填空题(1). 数据 关系(2). 逻辑结构 物理结构(3). 线性数据结构 树型结构 图结构(4). 顺序存储 链式存储 索引存储 散列表(Hash)存储(5). 变量的取值范围 操作的类别(6). 数据元素间的逻辑关系 数据元素存储方式或者数据元素

21、的物理关系(7). 关系 网状结构 树结构(8). 空间复杂度和时间复杂度(9). 空间 时间(10). (n)1.3 名词解释如下:数据:数据是信息的载体,是计算机程序加工和处理的对象,包括数值数据和非数值数据。数据项:数据项指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,一个数据元素可由若干个数据项组成。数据逻辑结构:数据的逻辑结构就是指数据元素间的关系。数据存储结构:数据的物理结构表示数据元素的存储方式或者数据元素的物理关系。数据类型:是指变量的取值范围和所能够进行的操作的总和。算法:是

22、对特定问题求解步骤的一种描述,是指令的有限序列。1.4 语句的时间复杂度为:(1) (n2) (2) (n2)(3) (n2)(4) (n-1)(5) (n3)1.5 参考程序:main()int X,Y,Z;scanf(“%d, %d, %d”,&X,&Y,Z);if (X=Y) if(X=Z) if (Y=Z) printf(“%d, %d, %d”,X,Y,Z);else printf(“%d, %d, %d”,X,Z,Y);else printf(“%d, %d, %d”,Z,X,Y); else if(Z=X) if (Y=Z) printf(“%d, %d, %d”,Y,Z,X);

23、else printf(“%d, %d, %d”,Z,Y,X);else printf(“%d, %d, %d”,Y,X,Z);1.6 参考程序:main() int i,n;float x,a,p;printf(“nn=”);scanf(“%f”,&n);printf(“nx=”);scanf(“%f”,&x);for(i=0;i=n;i+)scanf(“%f ”,&ai); p=a0;for(i=1;inext=p-next; p-next=s ;(10). s-next 2.3. 解题思路:将顺序表A中的元素输入数组a,若数组a中元素个数为n,将下标为0,1,2,(n-1)/2的元素依次

24、与下标为n,n-1, (n-1)/2的元素交换,输出数组a的元素。参考程序如下:main() int i,n;float t,a;printf(“nn=”);scanf(“%f”,&n);for(i=0;i=n-1;i+)scanf(“%f ”,&ai); for(i=0;i=(n-1)/2;i+) t=ai; ai =an-1-i; an-1-i=t; for(i=0;i=n-1;i+) printf(“%f”,ai);2.4 算法与程序:main() int i,n;float t,a;printf(“nn=”);scanf(“%f”,&n);for(i=0;in;i+)scanf(“%f

25、 ”,&ai); for(i=1;ia0 t=ai; ai =a0; a0=t; printf(“%f”,a0);for(i=2;ia1 t=ai; ai =a1; a1=t; printf(“%f”,a0);2.5 算法与程序:main() int i,j,k,n;float x,t,a;printf(“nx=”);scanf(“%f”,&x);printf(“nn=”);scanf(“%f”,&n);for(i=0;in;i+)scanf(“%f ”,&ai); / 输入线性表中的元素for (i=0; in; i+) / 对线性表中的元素递增排序 k=i; for (j=i+1; jn;

26、 j+) if (ajak) k=j; if (kj) t=ai;ai=ak;ak=t; for(i=0;ix) break;for(k=n-1;k=i;i-) / 移动线性表中元素,然后插入元素x ak+1=ak; ai=x; for(i=0;i=n;i+) / 依次输出线性表中的元素printf(“%f”,ai);2.6 算法思路:依次扫描A和B的元素,比较A、B当前的元素的值,将较小值的元素赋给C,如此直到一个线性表扫描完毕,最后将未扫描完顺序表中的余下部分赋给C即可。C的容量要能够容纳A、B两个线性表相加的长度。有序表的合并算法:void merge (SeqList A, SeqLi

27、st B, SeqList *C) int i,j,k; i=0;j=0;k=0; while ( i=A.last & j=B.last ) if (A.dataidatak+=A.datai+; else C-datak+=B.dataj+;while (idatak+= A.datai+;while (jdatak+=B.dataj+;C-last=k-1; 2.7 算法思路:依次将A中的元素和B的元素比较,将值相等的元素赋给C,如此直到线性表扫描完毕,线性表C就是所求递增有序线性表。算法:void merge (SeqList A, SeqList B, SeqList *C) int

28、 i,j,k; i=0;j=0;k=0; while ( i=A.last)while(jdatak+=A.datai+; C-last=k-1;习题3参考答案3.1.选择题(1). D (2). C (3). D (4). C (5). B (6). C (7). C (8). C (9). B (10).AB (11). D (12). B (13). D (14). C (15). C (16). D(17). B (18). C (19). C (20). C 3.2.填空题(1) FILO, FIFO(2) -1, 3 4 X * + 2 Y * 3 / -(3) stack.top

29、+, stack.sstack.top=x(4) pllink-rlink=p-rlink, p-rlink-llink=p-rlink(5) (R-F+M)%M(6) top1+1=top2(7) F=R(8) front=rear(9) front=(rear+1)%n(10) N-13.3 答:一般线性表使用数组来表示的线性表一般有插入、删除、读取等对于任意元素的操作而栈只是一种特殊的线性表栈只能在线性表的一端插入(称为入栈,push)或者读取栈顶元素或者称为“弹出、出栈”(pop)。3.4 答:相同点:栈和队列都是特殊的线性表,只在端点处进行插入,删除操作。不同点:栈只在一端(栈顶)进

30、行插入,删除操作;队列在一端(top)删除,一端(rear)插入。3.5 答:可能序列有14种:ABCD; ACBD; ACDB; ABDC; ADCB; BACD; BADC; BCAD; BCDA; BDCA; CBAD; CBDA; CDBA; DCBA。3.6 答:不能得到4,3,5,6,1,2,最先出栈的是4,则按321的方式出,不可能得到1在2前的序列,可以得到1,3,5,4,2,6,按如下方式进行push(1), pop(), push(2), push(3), pop(), push(4), push(5), pop(), pop(), pop(), push(6), pop(

31、)。 3.7 答:stack3.8 非递归:int vonvert (int no,int a) /将十进制数转换为2进制存放在a,并返回位数int r;SeStack s,*p;P=&s;Init_stack(p);while(no)push(p,no%2);no/=10;r=0;while(!empty_stack(p)pop(p,a+r);r+;return r;递归算法:void convert(int no)if(no/20)Convert(no/2);Printf(“%d”,no%2);elseprintf(“%d”,no); 3.9 参考程序:void view(SeStack

32、s)SeStack *p; /假设栈元素为字符型 char c;p=&s;while(!empty_stack(p)c=pop(p);printf(“%c”,c);printf(”n”);3.10 答:char3.11 参考程序:void out(linkqueue q) int e; while(q.rear !=q.front ) dequeue(q,e); print(e); /打印 习题4参考答案4.1 选择题:(1). A (2). D (3). C (4). C (5). B (6). B (7). D (8). A (9). B (10). D4.2 填空题:(1) 串长相等且对

33、应位置字符相等(2) 不含任何元素的串,0(3) 所含字符均是空格,所含空格数(4) 10(5) “helloboy”(6) 18(7) 1066(8) 由零个或多个任意字符组成的字符序列(9) 串中所含不同字符的个数(10) 364.3 StrLength (s)=14, StrLength (t)=4, SubStr( s,8,7)=” STUDENT”, SubStr(t,2,1)=”O”,StrIndex(s,“A”)=3, StrIndex (s,t)=0, StrRep(s,“STUDENT”,q)=” I AM A WORKER”,4.4 StrRep(s,”Y”,”+”);St

34、rRep(s,”+*”,”*Y”);4.5 空串:不含任何字符;空格串:所含字符都是空格串变量和串常量:串常量在程序的执行过程中只能引用不能改变;串变量的值在程序执行过程中是可以改变和重新赋值的主串与子串:子串是主串的一个子集串变量的名字与串变量的值:串变量的名字表示串值的标识符 4.6 int EQUAl(S,T)char *p,*q;p=&S;q=&T;while(*p&*q)if(*p!=*q)return *p-*q;p+;q+;return *p-*q; 4.7 (1)6*8*6=288(2)1000+47*6=1282(3)1000+(8+4)*6=1072(4)1000+(6*7

35、+4)*6=12764.8 i j v1 1 2 12 1 5 -13 2 1 44 3 4 75 4 2 66 5 1 87 5 3 9矩阵的三元组表习题5参考答案5.1 选择(1)C(2)B(3)C(4)B(5)C(6)D(7)C(8)C(9)B(10)C(11)B(12)C(13)C(14)C(15)C5.2 填空(1)1(2)1036;1040(3)2i(4) 1 ; n ; n-1 ; 2 (5)2k-1;2k-1(6)ACDBGJKIHFE(7)p!=NULL(8)Huffman树(9)其第一个孩子; 下一个兄弟(10)先序遍历;中序遍历5.3 叶子结点:C、F、G、L、I、M、K

36、;非终端结点:A、B、D、E、J;各结点的度:结点: A B C D E F G L I J K M 度: 4 3 0 1 2 0 0 0 0 1 0 0树深:45.4 无序树形态如下:二叉树形态如下:5.5 二叉链表如下:ABCDEFGHIJ三叉链表如下:ACBFGDEJIH5.6 先序遍历序列:ABDEHICFJG中序遍历序列:DBHEIAFJCG后序遍历序列:DHIEBJFGCA5.7 (1) 先序序列和中序序列相同:空树或缺左子树的单支树;(2) 后序序列和中序序列相同:空树或缺右子树的单支树;(3) 先序序列和后序序列相同:空树或只有根结点的二叉树。5.8 这棵二叉树为:5.9 先根遍历序列:ABFGLCDIEJMK后根遍历序列:FGLBCIDMJKEA层次遍历序列:ABCDEFGLIJKM5.10 证明:设树中结点总数为n,叶子结点数为n0,则n=n0 + n1 + + nm (1)再设树中分支数目为B,则B=n1 + 2n2 + 3n3 + + m nm (2)因为除根结点外,每个结点均对应一个进入它的分支,所以有n= B + 1 (3)将(1)和(2)代入(3),得n0 + n1 + + nm = n1 + 2n2 + 3n3 + + m nm + 1从而可得叶子结点数为:n0 = n2 + 2n3 + + (m-1)nm + 1 5.11 由5.10结论

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服