码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树

时间:2019-03-25 21:58:43      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:高度   scan   ring   iostream   ios   null   tno   struct   def   

  1 #include<iostream>
  2 #include<cstdio>
  3 #include<cmath>
  4 #include<string>
  5 #include<cstring>
  6 #include<algorithm>
  7 #include<cstdlib>
  8 #define OVERFLOW 3
  9 using namespace std;
 10 typedef char TElemType;
 11 TElemType ch;
 12 typedef struct BiTNode
 13 {
 14     TElemType data;
 15     struct BiTNode *lchild,*rchild;
 16 }BiTNode,*BiTree;
 17 
 18 
 19 //按前序输入二叉树中结点的值(一个字符)
 20 //#表示空树,构造二叉链表表示二叉树T
 21 void CreateBiTree(BiTree &T)
 22 {
 23     if(ch==\n)
 24         return;
 25     scanf("%c",&ch);
 26     if(ch==#)
 27         T=NULL;
 28     else{
 29         T=(BiTree)malloc(sizeof(BiTNode));
 30         (T)->data=ch;
 31         CreateBiTree(T->lchild);
 32         CreateBiTree(T->rchild);
 33     }
 34 }
 35 
 36 void PreOrder(BiTree T)//前序遍历二叉树
 37 {
 38     if(T!=NULL)
 39     {
 40         printf("%c",T->data);
 41         PreOrder(T->lchild);
 42         PreOrder(T->rchild);
 43     }
 44 }
 45 void InOrder(BiTree T)//中序遍历二叉树
 46 {
 47     if(T!=NULL)
 48     {
 49 
 50         InOrder(T->lchild);
 51         printf("%c",T->data);
 52         InOrder(T->rchild);
 53     }
 54 }
 55 void PostOrder(BiTree T)//后序遍历二叉树
 56 {
 57     if(T!=NULL)
 58     {
 59         PostOrder(T->lchild);
 60         PostOrder(T->rchild);
 61         printf("%c",T->data);
 62     }
 63 }
 64 int cnt=0;
 65 int countNode(BiTree T)//求二叉树中节点的个数
 66 {
 67     if(T)
 68     {
 69         cnt++;
 70         countNode(T->lchild);
 71         countNode(T->rchild);
 72     }
 73     return cnt;
 74 }
 75 
 76 
 77 int depthval=0;
 78 int dl=0;
 79 int dr=0;
 80 int Depth(BiTree T)//求二叉树的高度
 81 {
 82     if(!T)
 83         return 0;
 84     else
 85     {
 86         dl=Depth(T->lchild);
 87         dr=Depth(T->rchild);
 88         depthval=1+(dl>dr?dl:dr);
 89         return depthval;
 90     }
 91 }
 92 int main()
 93 {
 94     BiTree T;
 95     CreateBiTree(T);
 96     PreOrder(T);
 97     cout<<endl;
 98     InOrder(T);
 99     cout<<endl;
100     PostOrder(T);
101     cout<<endl;
102     return 0;//124##5##3##
103 }

 

二叉树

标签:高度   scan   ring   iostream   ios   null   tno   struct   def   

原文地址:https://www.cnblogs.com/coodyz/p/10596921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!