zoukankan      html  css  js  c++  java
  • 实验五 二叉树的建立、遍历及应用

    1、按照先序方法建立如图的二叉树: 2、按照中序分别用递归和非递归方法遍历 3、统计叶子节点的个数。


     #include<stdio.h>
    #include<stdlib.h>
    struct Tree
    {
        int  data;
        struct Tree *Lchild;
        struct Tree *Rchild; 
     };
    struct Tree *CreateTree(struct Tree  * tree)
     {
         int ch;
        scanf("%d",&ch);
        if(ch==0)
        tree=NULL;
         else
         {
             tree=(struct Tree * )malloc(sizeof(struct Tree));
             tree->data=ch;
             tree->Lchild=CreateTree(tree->Lchild);
             tree->Rchild=CreateTree(tree->Rchild);
              
         }
         return tree;
     }
    void ListTree(struct Tree * tree)//中序递归遍历 
     {
         if(tree!= NULL)
         {
            ListTree(tree->Lchild);
             printf("%d
    ",tree->data);
             ListTree(tree->Rchild);
         }
     }
     /*void ListTree(struct Tree * tree)//中序非递归遍历 
     {
        struct Tree * p;
        struct Tree *stack[20];
        int top=0;
        p=tree;
        while(p||top!=0)
        {
            while(p)
            {
                stack[top++]=p;
                p=p->Lchild;
            }
            p=stack[--top];
            printf("%d ",p->data);
            p=p->Rchild;
         } 
     }*/
    void GetNum(struct Tree * tree,int &n )//统计叶子节点的个数 
     {
     
         if(tree !=NULL)
         {
             n++;
             GetNum(tree->Lchild,n);
             GetNum(tree->Rchild,n);
         }
         else
         return ;
     }
    int main()
    {
        struct Tree * tree;
        tree=CreateTree(tree);
        ListTree(tree);
        int num=0;
        GetNum(tree,num);
        printf("叶子节点的个数为:");
        printf("%d",num);
    }
  • 相关阅读:
    我的黑客偶像
    2020-2021-1学期 学号20201222 《信息安全专业导论》第5周学习总结
    XOR加密
    pep/9
    我的黑客偶像
    学年2020-2021,1 学号:20201222《信息安全专业导论》第4周学习总结”
    IEEE754浮点数转换
    师生关系
    罗马数字转阿拉伯数字
    第三周总结
  • 原文地址:https://www.cnblogs.com/accept/p/8175900.html
Copyright © 2011-2022 走看看