树的先序,中序,后序递归遍历(链式存储结构)

来源:互联网 发布:海口Java招聘 编辑:程序博客网 时间:2024/06/06 02:58
#include <stdio.h>#include <malloc.h>#define  DataType chartypedef  struct Node{ DataType     Data; struct Node  *LeftChild; struct Node  *RightChild;}BitNode,*BitTree; BitTree  CreatTree(BitTree  root); void     PreOrder(BitTree   root); void     InOrder(BitTree    root); void     PostOrder(BitTree  root); void     VisitTree(BitTree  root); BitTree  CreatTree(BitTree  root){    char ch;    ch=getchar();    if('^'==ch)    {        root=NULL;    }    else    {        root=(BitTree)malloc(sizeof(BitNode));        root->Data=ch;        root->LeftChild=CreatTree(root->LeftChild);        root->RightChild=CreatTree(root->RightChild);    }    return root;} void     PreOrder(BitTree   root){     if(root)     {     VisitTree(root);     PreOrder(root->LeftChild);     PreOrder(root->RightChild);     }}void     InOrder(BitTree    root){    if(root)    {     InOrder(root->LeftChild);     VisitTree(root);     InOrder(root->RightChild);    }}void     PostOrder(BitTree  root){    if(root)    {     PostOrder(root->LeftChild);     PostOrder(root->RightChild);     VisitTree(root);    }}void     VisitTree(BitTree  root){  printf("%c  ",root->Data);} int main(void){    BitTree root=NULL;    root=CreatTree(root);    printf("The tree line traversal sequence :\n");    PreOrder(root);    printf("\n");    printf("In order traversal sequence tree:\n");    InOrder(root);    printf("\n");    printf("After the traversal sequence tree:\n");    PostOrder(root);    printf("\n");    return 0;}

0 0
原创粉丝点击