没有合适的资源?快使用搜索试试~ 我知道了~
C++二叉树的实现完整程序源码
4星 · 超过85%的资源 需积分: 32 69 下载量 92 浏览量
2008-09-12
15:33:16
上传
评论 4
收藏 4KB TXT 举报
温馨提示
试读
8页
用C++实现一个二叉树类,包括二叉树的建立和遍历,大家可以看看
资源推荐
资源详情
资源评论
[精] C++二叉树的实现
2007-11-30 15:07:17 本文已公布到博客频道校园・教育分类
#include<iostream.h>
#include<stdlib.h>
template<class T>
struct BTNode
{
T data;
BTNode<T> *lChild,*rChild;
BTNode();
BTNode(const T &val,BTNode<T> *Childl=NULL,BTNode<T> *Childr=NULL)
{
data=val;
lChild=Childl;
rChild=Childr;
}
BTNode<T>* CopyTree()
{
BTNode<T> *nl,*nr,*nn;
if(&data==NULL)
return NULL;
nl=lChild->CopyTree();
nr=rChild->CopyTree();
nn=new BTNode<T>(data,nl,nr);
return nn;
}
};
template<class T>
BTNode<T>::BTNode()
{
2007-11-30 15:07:17 本文已公布到博客频道校园・教育分类
#include<iostream.h>
#include<stdlib.h>
template<class T>
struct BTNode
{
T data;
BTNode<T> *lChild,*rChild;
BTNode();
BTNode(const T &val,BTNode<T> *Childl=NULL,BTNode<T> *Childr=NULL)
{
data=val;
lChild=Childl;
rChild=Childr;
}
BTNode<T>* CopyTree()
{
BTNode<T> *nl,*nr,*nn;
if(&data==NULL)
return NULL;
nl=lChild->CopyTree();
nr=rChild->CopyTree();
nn=new BTNode<T>(data,nl,nr);
return nn;
}
};
template<class T>
BTNode<T>::BTNode()
{
lChild=rChild=NULL;
}
template<class T>
class BinaryTree
{
public:
BTNode<T> *root;
BinaryTree();
~BinaryTree();
void Pre_Order();
void In_Order();
void Post_Order();
int TreeHeight()const;
int TreeNodeCount()const;
void DestroyTree();
BTNode<T>* MakeTree(const T &element,BTNode<T> *l,BTNode<T> *r)
{
root=new BTNode<T>(element,l,r);
if(root==NULL)
{
cout<<"申请存贮地址失败,系统将关闭进程/n";
exit(1);
}
return root;
}
private:
void Destroy(BTNode<T> *&r);
void PreOrder(BTNode<T> *r);
void InOrder(BTNode<T> *r);
void PostOrder(BTNode<T> *r);
}
template<class T>
class BinaryTree
{
public:
BTNode<T> *root;
BinaryTree();
~BinaryTree();
void Pre_Order();
void In_Order();
void Post_Order();
int TreeHeight()const;
int TreeNodeCount()const;
void DestroyTree();
BTNode<T>* MakeTree(const T &element,BTNode<T> *l,BTNode<T> *r)
{
root=new BTNode<T>(element,l,r);
if(root==NULL)
{
cout<<"申请存贮地址失败,系统将关闭进程/n";
exit(1);
}
return root;
}
private:
void Destroy(BTNode<T> *&r);
void PreOrder(BTNode<T> *r);
void InOrder(BTNode<T> *r);
void PostOrder(BTNode<T> *r);
剩余7页未读,继续阅读
资源评论
- 「已注销」2012-11-27很早前就下了,可惜知识太少,看不太懂
- Spidey2122011-10-26很强大的代码,对我编程很有启发,特别是几个递归函数,很有思想.....另,代码开头应加上一句 using namespace std;
- qq3619328582012-12-10对二叉排序树的各种操作有个详尽的解释
- darktemple92011-11-17递归实现很简练,而且没有太多冗余代码。
romeici
- 粉丝: 1
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功