二叉树模板
来源:互联网 发布:增值税开票软件下载 编辑:程序博客网 时间:2024/04/29 09:03
整理了下二叉树模板(持续更新中,以后碰到新的函数会慢慢补充)接下来就是代码,每个函数都有备注,也欢迎大家不断补充,一起完善。
代码:
#include <iostream> #include <queue>using namespace std;struct Tree{int data;//数据域Tree *lchild ,*rchild;//分别为左孩子有孩子 };Tree *buildTree(Tree *bt){int x;cin>>x;if(x==0) bt=NULL;//建立树的时候如果碰到0就代表空的节点 ,根据题意 else{bt=new Tree;//分配空间bt->data=x;bt->lchild=buildTree(bt->lchild);bt->rchild=buildTree(bt->rchild);}return bt; }void bianli(Tree *bt)//前序遍历,中序以及后续 {if(bt==NULL) return;else{cout<<bt->data;bianli(bt->lchild);bianli(bt->rchild);}/*中序遍历: bianli(bt->lchild);cout<<bt->data;bianli(bt->rchild);后序遍历: bianli(bt->lchild);bianli(bt->rchild);cout<<bt->data; */ } void cengxv(Tree *bt){queue<Tree*>Q;//定义一个队列 Tree *temp;//定义一个新的结点 if(bt==NULL) return ;Q.push(bt);while(!Q.empty()){temp=Q.front(); Q.pop();cout<<temp->data<<" ";if(temp->lchild!=NULL) Q.push(temp->lchild);if(temp->rchild!=NULL) Q.push(temp->rchild);}}int deepth(Tree *bt)//计算二叉树的深度 {if(bt==NULL) return 0;elsereturn max(deepth(bt->lchild),deepth(bt->rchild))+1;//画图模拟一遍 } int main(){Tree *root;//树的根,还未分配空间,只是声明; root=buildTree(root);//建树时需要将根节点的值传出来。 bianli(root);//前序中序后序遍历输出cengxv(root);//层序遍历输出 deepth(root);//计算二叉树深度 }
1 0
- 二叉树(模板)
- (模板)平衡二叉树
- 二叉树模板
- C++ 二叉树模板
- 二叉树模板
- 平衡二叉树模板
- 【模板】二叉查找树
- 二叉树模板
- 平衡二叉树模板
- 模板--二叉搜索树
- 模板--二叉树
- 二叉搜索树【模板】
- 二叉树遍历模板
- 【模板】二叉搜索树
- SBT 平衡二叉树模板
- C++ 二叉搜索树 模板
- 平衡二叉树SBT模板
- 平衡二叉树C++模板
- python,pyodbc备份SQL Server
- Android stutio layout预览错误(Rending Problems)
- Java调用Memcache入门
- [codevs2168]生物入侵者
- 延时Progressdialog提示修改中。。。封装类
- 二叉树模板
- Java Process.waitFor()方法
- 程序员必备:推荐一个谷歌镜像导航网站
- spark中文文本分类
- linux文件编程与时间编程
- Android app开发中的比较麻烦的坑(一)
- Android Studio混淆模板和第三方混淆--binbinyang
- 1007. Maximum Subsequence Sum (25)
- table中的table-layout属性