zoukankan      html  css  js  c++  java
  • 数据结构实验三:二叉树及其应用

    设计两种输入模式建立一棵二叉树;输出该二叉树的深度;输出二叉树的子叶结点

    #include<stdio.h>
    #include<malloc.h>
    struct node{
        char data;
        struct node *lchild;
        struct node *rchild;
    };
    node * creat(node *p)
    {
        char ch;
        scanf("%c",&ch);
        if(ch==',')
            p=NULL;
        else
        {
            p=(node *)malloc(sizeof(node));
            p->data=ch;
            p->lchild=creat(p->lchild);
            p->rchild=creat(p->rchild);
        }
        return p;
    }

    void travel_zhongxu(node *p)
    {
        if(p!=NULL){
            travel_zhongxu(p->lchild);
            printf("%c",p->data);
        


        travel_zhongxu(p->rchild);
        }    
    }
    void travel_houxu(node *p)
    {
        if(p!=NULL){
            travel_houxu(p->lchild);
            travel_houxu(p->rchild);
            printf("%c",p->data);
        }    
    }
    void leaf(node *p,int &l)
    {
        if(p&&p->lchild==NULL&&p->rchild==NULL)
            l++;
        if(p!=NULL)
        {
            leaf(p->lchild,l);
            leaf(p->rchild,l);
        }
    }

    int deepth(node *p)
    {
        int d,dl,dr;
        if(!p)
            d=0;
        else{
            dl=deepth(p->lchild);
            dr=deepth(p->rchild);
            d=1+(dl>dr?dl:dr);
        }
        return d;
    }

    int main()
    {
        node *tree;
        tree=creat(tree);
        travel_zhongxu(tree);
        printf("\n");
        travel_houxu(tree);
        printf("\n");
        int l=0;
        leaf(tree,l);
        printf("%d\n",l);
        int deep;
        deep=deepth(tree);
        printf("%d\n",deep);
    }
  • 相关阅读:
    后台管理UI的选择
    通过Js对电话和姓名身份证等进行部分隐藏处理
    12个用得着的JQuery代码片段
    Java获取登录用户IP地址
    Android Gson解析json详解
    Android——SD卡工具类——SDCardUtils.java
    【读书笔记】---《失控》
    【读书笔记】.Net并行编程(三)---并行集合
    Wix 安装部署教程(十六) -- 自动生成多语言文件
    【月末轻松篇】--- 那些奇葩的Bugs
  • 原文地址:https://www.cnblogs.com/ma6174/p/2313316.html
Copyright © 2011-2022 走看看