二叉树的三种遍历简单版

2018-06-18 03:57:28来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

同学突然向我问二叉树的三种遍历代码。数据结构刚刚学了,自己很吃力的敲了出来。

和老师演示的代码有很大差距。

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define Error -1
#define Right 1

struct BiTnode
{
    char data;
    struct BiTnode *LChild;
    struct BiTnode *RChild;

};

BiTnode  *Creat_BinaryTree()
{
    BiTnode *t;

    t=(BiTnode *)malloc(sizeof(BiTnode));

    t->data=getchar();

    if(t->data=='1')
    {
        t=NULL;
        return t;
    }

    t->LChild=Creat_BinaryTree();
    t->RChild=Creat_BinaryTree();
    return t;
}

void Preorder(BiTnode * t)
{
    if(t)
    {
        putchar(t->data);
        Preorder(t->LChild);
        Preorder(t->RChild);
    }
}

void Midorder(BiTnode * t)
{
    if(t)
    {
        Midorder(t->LChild);
        putchar(t->data);
        Midorder(t->RChild);
    }
}

void Posorder(BiTnode * t)
{
    if(t)
    {
        Posorder(t->LChild);
        Posorder(t->RChild);
        putchar(t->data);
    }
}

int main()
{
    BiTnode * t;

    t=Creat_BinaryTree();

    printf("前序遍历为:");
    Preorder(t);
    putchar('\n');
    printf("中序遍历为:");
    Midorder(t);
    putchar('\n');
    printf("后续遍历为:");
    Posorder(t);
    putchar('\n');
    free(t);
    return 0;
}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:6、计数垂直直方图输出

下一篇:C语言(记录)——内存相关_2:内存的编址与管理