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

二叉树基本操作

时间:2019-10-05 18:18:05      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:基本操作   void   scanf   dep   can   操作   color   str   alt   

二叉树的建立,前序遍历,中序遍历,后序遍历以及求深度和叶子节点个数

#include<windows.h>
#include<stdio.h>
#include<malloc.h>

typedef struct TreeNode{
    int data;
    struct TreeNode *left,*right;
}BiNode,*BiTree;

BiTree Create()
{
    int val;
    scanf("%d",&val);
    if(val<=0)
        return NULL;
    BiTree root=(BiTree)malloc(sizeof(BiNode));
    if(!root)
        printf("Failed\n");
    if(val>0)
    {
        root->data=val;
        root->left=Create();
        root->right=Create();
        return root;
    }
}

void PreOrder(BiTree root)
{
    if(root==NULL)
        return;
    printf("%d\t",root->data);
    PreOrder(root->left);
    PreOrder(root->right);
}

void InOrder(BiTree root)
{
    if(root==NULL)
        return;
    InOrder(root->left);
    printf("%d\t",root->data);
    InOrder(root->right);
}

void PostOrder(BiTree root)
{
    if(root==NULL)
        return;
    PostOrder(root->left);
    PostOrder(root->right);
    printf("%d\t",root->data);
}

int maxDepth(BiTree root)
{
    if(root==NULL)
        return 0;
    int maxleft=maxDepth(root->left);
    int maxright=maxDepth(root->right);
    if(maxleft>maxright)
        return maxleft+1;
    else
        return maxright+1;
}

int LeafNodeNum(BiTree root)
{
    if(root==NULL)
        return 0;
    if(root->left==NULL&&root->right==NULL)
        return 1;
    else
        return LeafNodeNum(root->left)+LeafNodeNum(root->right);
}
int main(void)
{
    BiTree root=(BiTree)malloc(sizeof(BiNode));
    root=Create();
    printf("pre\n");
    PreOrder(root);
    printf("\nIn\n");
    InOrder(root);
    printf("\npost\n");
    PostOrder(root);
    printf("\ndepth :%d\n",maxDepth(root));
    printf("leafnum\n:%d\n",LeafNodeNum(root));
    system("pause");
    return 0;
}

技术图片

 

二叉树基本操作

标签:基本操作   void   scanf   dep   can   操作   color   str   alt   

原文地址:https://www.cnblogs.com/wangtianning1223/p/11625128.html

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