一个功能简单的二叉树模板
2012-11-11 15:30
351 查看
目前仅仅建议使用char类型数据,因为之前cin.fail()函数处理失败,有点小迷惑,所以暂时改用了固定无效字符限定的形式处理。
麻雀虽小,五脏俱全,这里面该处理的基本上都包含了。
麻雀虽小,五脏俱全,这里面该处理的基本上都包含了。
#include <iostream> using namespace std; template<class T> class BTree { private: class Node { public: T element;//Can be optimized Node *LTree; Node *RTree; }; Node *root; bool creat(Node *&root); void show(Node *root)const;//Read Only bool B_Delete(Node *&root); public: BTree(); ~BTree(); void BTShow(); bool BTCreat(); void BTDelete(); }; template<class T> BTree<T>::BTree() { root=NULL; } template<class T> BTree<T>::~BTree() { B_Delete(root); } template<class T> bool BTree<T>::BTCreat() { if(creat(root)); return true; return false; } template<class T> bool BTree<T>::creat(Node *&root) { T tempaval; cin>>tempaval; if(tempaval!='#') { root=new Node; if(!root) { root=NULL; return false; } root->element=tempaval; if(!creat(root->LTree)) root->LTree=NULL; if(!creat(root->RTree)) root->RTree=NULL; } else return false; return true; } template<class T> bool BTree<T>::B_Delete(Node *&root) { if(root) { B_Delete(root->LTree); B_Delete(root->RTree); cout<<root->element<<ends; delete root; return true; } else return false; } template<class T> void BTree<T>::show(Node *root)const { if(root) { cout<<root->element<<ends; show(root->LTree); show(root->RTree); } else return; } template<class T> void BTree<T>::BTShow() { show(root); } int main() { BTree<char> temp1; temp1.BTCreat(); temp1.BTShow(); cout << "Hello world!" << endl; return 0; }
相关文章推荐
- 一个功能简单的队列模板
- .net c# 一个简单但是功能强大动态模板引擎(一)
- .net c# 一个简单但是功能强大动态模板引擎
- 实现一个简单的摄像功能(不带传输数据)代码片段
- 写一个python脚本,实现简单的http服务器功能:
- PHP实现简单的模板引擎功能示例
- 一个比较容易调用 功能比较完善的 cookie 操作类 附带一些简单的应用示例
- 一个简单的数据结构举例——二叉树及…
- Asp.Net MVC3 简单入门第一季(五) 通过Asp.Net MVC的区域功能实现将多个MVC项目部署到一个站点
- flex的一个简单的页面跳转功能
- 使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能。并且在界面上有radio 的选择内容也要上传
- 一个简单二叉树的C++实现(一)
- XML与ASP简单结合实现HTML模板功能
- 用Python 实现刷钻网上抢任务,并实现一个简单的限制使用时间的功能
- Unity, C# ,TCP实现的一个简单的对话同步功能
- C# 实现简单打印(三)-认识打印控件,创建一个带打印功能的程序
- [转]推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
- node简单实现一个更改头像功能
- 简单实现一个Form窗体的抖动功能
- QT4 一个简单的打开文件功能