ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:36.30KB ,
资源ID:22923291      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(讲评二叉树Word文档下载推荐.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

讲评二叉树Word文档下载推荐.docx

1、 if(mn|sm=) coutendl; else i=m; while(i!=0) coutnm) cint+1; Operate(t,n,m); return 0;求最近公共祖先 设有一棵非空二叉树,其节点值为字符型并假设各值互不相等,采用顺序存储结构表示。现输入其数组各元素值(空二叉树用表示),建立该二叉树。请设计一个算法,输出编号分别为i和j的两个结点的最近的公共祖先结点的值。有多组测试数据,每组数据占两行,第一行为两个整数,分别表示编号i和j(i!=j),第二行为其数组各元素值(空二叉树用表示)。输出编号i和j的最近公共祖先结点的值,若该祖先结点不存在则输出3 5ABC#D2 5A

2、BCDE#FABvoid Operate(char s,int i,int j) int n; n=strlen(s+1); if(i1|jn|jn|si=|sj= =j) if(ij) i=i/2; else j=j/2;sistruct BiNode /二叉树的结点结构 char data; BiNode *lchild,*rchild;class BiTreepublic: BiTree( ); /构造函数,初始化一棵二叉树,其前序序列由键盘输入 BiTree( ); /析构函数,释放二叉链表中各结点的存储空间 BiNode* Getroot(); /获得指向根结点的指针 int hei

3、ght(BiNode *root); void nodes(BiNode *root);private: BiNode *root; /指向根结点的头指针 BiNode *Creat( ); /有参构造函数调用 void Release(BiNode *root); /析构函数调用BiTree:BiTree( ) this-root = Creat( );BiTree( ) Release(root);BiNode* BiTree:Getroot( ) return root;int BiTree:height(BiNode *root) if(root=NULL) return 0; int

4、 hl,hr; hl=height(root-lchild); hr=height(root-rchild); if(hl=hr) return hl+1; else return hr+1;int num;void BiTree:nodes(BiNode *root) if(root) num+; nodes(root-Creat( ) BiNode* root; char ch; cinch; if (ch=) root = NULL; root = new BiNode; /生成一个结点 root-data=ch;lchild = Creat( ); /递归建立左子树rchild = C

5、reat( ); /递归建立右子树Release(BiNode *root) if (root != NULL) Release(root- /释放左子树 /释放右子树 delete root;n; while(n-) BiTree bt; /按扩展前序序列创建一棵二叉树 BiNode *root = bt.Getroot( ); /获取指向根结点的指针 num=0; bt.nodes(root); int h; h=bt.height(root); if(num=pow(2,h)-1)1005:括号表示法输出二叉树 设计一个算法,采用括号表示法输出该二叉树。用括号表示法输出二叉树。6A#AB

6、#A#B#AB#C#A(B)A(,B)A(B,C)A(B(,D),C)A(B(D,E),C(,F) void Print(BiNode *root);Print(BiNode *root)root-data; if(root-lchild|root-rchild)(; Print(root- if(root- cout,) bt.Print(root);1004:二叉树的宽度二叉树的宽度是指二叉树各层结点数的最大值。设有一棵二叉树,其节点值为字符型并假设各值互不相等,采用二叉链表存储表示。设计一个算法,输出该二叉树的宽度。空二叉树的宽度为0。输出该二叉树的宽度。3HDA#C#B#GF#E#st

7、ruct SeqQueue BiNode *dataMaxSize; int levelMaxSize; /存各结点所在层数 int front,rear; /定义一个顺序队列Q int Width();Width() int max,k,n,i; BiNode *t; SeqQueue Q; if(root=NULL) Q.front=Q.rear=-1;/初始为空队列 Q.data+Q.rear=root;/根结点入队 Q.levelQ.rear=1; while(Q.frontlchild!=NULL)/左孩子入队 Q.data+Q.rear=t-lchild; Q.levelQ.rea

8、r=k+1; if(t-rchild!=NULL)/右孩子入队rchild; /while max=0;k=1;n=0;i=0; while(imax) max=n; n=0; k=k+1; if(nmax) /比最后一层的 max=n; return max; /else不为空bt.Width()哈夫曼编码由若干个值无重复的结点及其权值,建立相应的哈夫曼树,要求哈夫曼树中所有左孩子编号小于右孩子编号(以结点的输入顺序做为其编号)。对所建的哈夫曼树,根据左0右1的原则,对各结点进行编码。设计一个算法,对给定的若干码串进行相应的解码,并输出解码结果。有多组测试数据,每组数据由结点信息和码串两部分

9、组成。结点信息部分的第一行为一个整数n(nconst int MAX=20;const int MaxLen=100;/哈夫曼树输入数据的结构struct huffinit int weight;/哈夫曼树结点的结构struct huffnode int lchild,rchild,parent;/哈夫曼树编码的结构struct huffcode char codeMAX+1;/哈夫曼树类的声明class HuffTree HuffTree(huffinit w,int n); HuffTree() void Select(int &min1,int &min2,int m); void Encode(); void Decode(char code); huffnode tree2*MAX-1; huffcode cdMAX; int size;void HuffTree:Decode(char code) int i=0; int j=2*(size-1); /从根开始 while(codei!=0 if(codei=0 j=treej.lchild; j=treej.rchild; if(treej.lchild=-1) coutcdj.data; j=2*(size-1); i+;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1