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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

二叉树的实现.docx

1、二叉树的实现二叉树的实现二叉树的实现.txt32因为爱心,流浪的人们才能重返家园;因为爱心,疲惫的灵魂才能活力如初。渴望爱心,如同星光渴望彼此辉映;渴望爱心,如同世纪之歌渴望永远被唱下去。#include#includeusing namespace std;#define NULL 0/二叉树的结点类class BinaryTreeNode friend class BinaryTree;private: char element; BinaryTreeNode *left; BinaryTreeNode *right;public: BinaryTreeNode(); BinaryTree

2、() DeleteBinaryTree(root);/析构函数 BinaryTreeNode * Root()return root;/取根结点的值 BinaryTreeNode * Root1()return &root;/取根结点的地址值,主要是为建立树的时候使用 void CreateTree(const char & elem,BinaryTree &leftTree,BinaryTree & rightTree); bool isEmpty()const; BinaryTreeNode *Parent(BinaryTreeNode * current); void BuildTree

3、(BinaryTreeNode *root);/前序访问 void PreOrder(BinaryTreeNode *root)const;/中序遍历 void InOrder(BinaryTreeNode *root)const;/后序遍历 void PostOrder(BinaryTreeNode *root)const;/层序遍历 void LevelOrder(BinaryTreeNode *root)const;/统计叶结点个数 void CountLeaf(BinaryTreeNode * root,int &); int BtDepth(BinaryTreeNode *root)

4、const;/判断是否为空树bool BinaryTree:isEmpty()const return(root)?true:false);/取父结点BinaryTreeNode * BinaryTree:GetParent(BinaryTreeNode *root,BinaryTreeNode *current) BinaryTreeNode *temp; if(root=NULL) return NULL; if(root-leftchild()=current)|(root-rightchild()=current) return root; if(temp=GetParent(root

5、-leftchild(),current)!=NULL) return temp; else return GetParent(root-rightchild(),current);/BinaryTreeNode * BinaryTree:Parent(BinaryTreeNode * current) if(current=NULL)|(current=root) return NULL; return GetParent(root,current);/删除树void BinaryTree:DeleteBinaryTree(BinaryTreeNode *root) if(root) Del

6、eteBinaryTree(root-left); DeleteBinaryTree(root-right); delete root; /创建一棵二叉树void BinaryTree:BuildTree(BinaryTreeNode *current)/采用前序遍历的方法建立一棵树,传递的参数为一个指向结点的指针的指针,目的是为了解决传值的问题 /输入符号的时候,表示一棵子树结束 BinaryTreeNode *current1; char ch; coutch; if(ch=) *current=NULL;/current=NULL; else current1=new BinaryTre

7、eNode(ch); if(root=NULL) root=current1; * current=current1; BuildTree(&(*current)-left); BuildTree(&(*current)-right); /定义结束/前序访问void BinaryTree:PreOrder(BinaryTreeNode *current)const if(current!=NULL) coutelementleftchild(); PreOrder(current-rightchild(); /中序遍历void BinaryTree:InOrder(BinaryTreeNode

8、 *current)const if(current!=NULL) InOrder(current-leftchild(); coutelementrightchild(); /后序遍历void BinaryTree:PostOrder(BinaryTreeNode *current)const if(current!=NULL) PostOrder(current-leftchild(); PostOrder(current-rightchild(); coutelement ; /层序遍历void BinaryTree:LevelOrder(BinaryTreeNode *current)

9、const queueaQueue; BinaryTreeNode *pointer=current; if(pointer) aQueue.push(pointer); while(!aQueue.empty() pointer=aQueue.front(); coutelementleftchild() aQueue.push(pointer-leftchild(); if(pointer-rightchild() aQueue.push(pointer-rightchild(); /统计叶结点个数void BinaryTree:CountLeaf(BinaryTreeNode * roo

10、t,int &count) if(root!=NULL) if(root-leftchild()=NULL)&(root-rightchild()=NULL) count+; CountLeaf(root-leftchild(),count); CountLeaf(root-rightchild(),count); /计算树的高度int BinaryTree:BtDepth(BinaryTreeNode * current)const /int leftdep,rightdep return 0;void main() BinaryTree BT; BT.BuildTree(BT.Root1(); BT.PreOrder(BT.Root(); BT.InOrder(BT.Root(); BT.PostOrder(BT.Root(); cout层序访问endl; BT.LevelOrder(BT.Root(); int x=0; BT.CountLeaf(BT.Root(),x); coutxendl;

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

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