| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 283 人关注过本帖
标题:这是一个先序建立的二叉树,想知道怎样改成中序或后序的。
只看楼主 加入收藏
孤狼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
快速回复:这是一个先序建立的二叉树,想知道怎样改成中序或后序的。
数据加载中...
 
   



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

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