二叉树的前序建立方式
来源:互联网 发布:贪婪洞窟淘宝刷钻石 编辑:程序博客网 时间:2024/06/06 12:57
</pre><pre name="code" class="cpp">#include<iostream>#include<cstdlib>#include<cstdio>using namespace std;typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;}*BiTree;//创建一课二叉树,根左右方式输入数据 void CreateTree(BiTree &T){char c;c=getchar();if(c==' '){T=NULL;}else{T=(BiTNode *)malloc(sizeof(BiTNode));/*T=(BiTree)malloc(sizeof(BiTNode));*//*T=(BiTree)malloc(sizeof(BiTree));这种是错误的,不知道可以百度结构体的不同写法*/ T->data=c;CreateTree(T->lchild);CreateTree(T->rchild);}} void Vist(char c,int level){cout<<c<<"位于第"<<level<<"层."<<endl; }void PreView(BiTree T,int level)//递归遍历 {if(T){Vist(T->data,level);PreView(T->lchild,level+1);PreView(T->rchild,level+1);}}int CountLeaf(BiTree T)//统计叶子节点个数 {int countleft,countright;if(T==NULL){return 0;}if(T->lchild==NULL&&T->rchild==NULL){return 1;}countleft=CountLeaf(T->lchild);countright=CountLeaf(T->rchild);return countleft+countright;} int CountDepth(BiTree T)//计算二叉树深度 {int countleft,countright;if(T==NULL){return 0;}else{countleft=CountDepth(T->lchild);countright=CountDepth(T->rchild);if(countleft>=countright){return countleft+1;}else{return countright+1;}}}BiTNode *SearchNode(BiTree T,char e)//查找某个节点的位置 {if(T==NULL){cout<<"树空,没有元素!"<<endl;return NULL;}if(T->data==e){cout<<"元素找到了:"<<T->data<<endl; return T;}BiTNode *p;p=SearchNode(T->lchild,e);if(p) return p;//俗称的剪枝 p=SearchNode(T->rchild,e);if(p) return p;//俗称的剪枝 } int main(){int level=1;BiTree T=NULL; CreateTree(T); PreView(T,level); cout<<endl<<"叶子节点个数为:"<<CountLeaf(T)<<endl; cout<<endl<<"二叉树的深度为:"<<CountDepth(T)<<endl; char code='D'; SearchNode(T,code); return 0;}
0 0
- 二叉树的前序建立方式
- 前序建立二叉树
- 二叉树的前序递归建立的详解
- 二叉树的建立和前序遍历
- C++二叉树的前序建立与前中后遍历
- 类似前序遍历 建立二叉树
- 二叉树建立及前序遍历
- 前序遍历建立二叉树
- C++编程练习(8)----“二叉树的建立以及二叉树的三种遍历方式“(前序遍历、中序遍历、后续遍历)
- 由树的前序遍历,中序遍历建立一颗二叉树,并以后续遍历的方式输出其元素
- 二叉树的建立与前、中、后、层次遍历
- Java 实现二叉树的建立以及前、中、后序遍利
- 二叉树的前序建立,前中后序遍历的非递归算法
- 根据前序和中序建立二叉树
- 前序,中序序列建立二叉树
- 用C语言读取前序建立二叉树
- 根据前序遍历和后续遍历建立二叉树
- 数叶子节点(前序建立二叉树)
- 俸骨仁反母悄邑悄悍卣悸搜冻桓妇
- 考招贪幽习粱鲜戮谑木勘弦亩究妥
- UVaOJ 445 Marvelous Mazes
- C#——一个简单的文件管理器
- Java 集合总体框架
- 二叉树的前序建立方式
- linux下UDP编程
- MOOC《Linux内核分析》——分析system_call中断处理过程
- caffe特征提取/C++数据格式转换
- android开发 - Content Provider 内容提供者
- HDU2047 阿牛的EOF牛肉串【水题】
- Hbase学习全程记录——hbase表的创建,存储,读取,删除
- java 集合Collection架构
- image moments and the related ones