标题:这是一个先序建立的二叉树,想知道怎样改成中序或后序的。
只看楼主
孤狼B组
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2015-7-31
 问题点数:0 回复次数:0 
这是一个先序建立的二叉树,想知道怎样改成中序或后序的。
#include "stdio.h"
#include"stdlib.h"
#include"conio.h"
#define ElemType char

typedef struct BiTNode{
    char data;
    struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//先序建立二叉树
BiTree CreateBiTree(){
    char ch;
    BiTree T;
    scanf("%c",&ch);
    if(ch=='#')T=NULL;
    else{
        T = (BiTree)malloc(sizeof(BiTNode));
        T->data = ch;
        T->lchild = CreateBiTree();
        T->rchild = CreateBiTree();
    }
    return T;
}
//先序遍历二叉树
void PreOrderTraverse(BiTree T){
    if(T){
       printf("%c",T->data);
       PreOrderTraverse(T->lchild);
       PreOrderTraverse(T->rchild);
    }
}
  
//中序遍历
void InOrderTraverse(BiTree T){
    if(T){
      InOrderTraverse(T->lchild);
       printf("%c",T->data);
       InOrderTraverse(T->rchild);
    }
}
//后序遍历
void PostOrderTraverse(BiTree T){
    if(T){
       PostOrderTraverse(T->lchild);
       PostOrderTraverse(T->rchild);
       printf("%c",T->data);
    }
}
void main(){
    BiTree T;
    T = CreateBiTree();//建立
    printf("先序遍历序列为");
    PreOrderTraverse(T);//输出
    printf("\n中序遍历序列为");
    InOrderTraverse( T);
    printf("\n后序遍历序列为");
    PostOrderTraverse( T);
    getch();
}
2015-08-01 15:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-455975-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.622033 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved