• 二叉树


      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=='
    ')
     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 }
  • 相关阅读:
    python--模块导入与执行
    python--re模块
    python--递归函数
    CSRF攻击与防御
    XSS跨站脚本攻击
    HTTP协议详解以及URL具体访问过程
    Git服务器搭建
    浅谈PHP异常处理
    常用的几个PHP加密函数
    PHP将数据导出Excel表中(投机型)
  • 原文地址:https://www.cnblogs.com/coodyz/p/10596921.html
Copyright © 2020-2023  润新知