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);
    }
  • 相关阅读:
    灾后重建
    ZYN砍树
    聪聪可可
    GirlCat
    图表控件== 百度 echarts的入门学习
    图表控件的学习===》hightChart 和 Chartjs的使用
    拆分订单===初
    net 的单元测试 初学
    vue js 用nodejs的依赖包 --2016-08-23
    后台框架--HUI 的学习跟使用1
  • 原文地址:https://www.cnblogs.com/accept/p/8175900.html
Copyright © 2011-2022 走看看