数据结构之二叉树的生成与遍历

来源:互联网 发布:结婚算日子软件 编辑:程序博客网 时间:2024/05/21 00:21
/******************遍历二叉树*****************/#include"stdio.h"#include"stdlib.h"typedef char ElemType;typedef struct BiTNode{ElemType data;struct BiTNode  *lchild,*rchild;}BiTNode,*BiTree;/****************Operator********************/BiTree CreateBiTree(){BiTree T;ElemType ch;scanf(" %c",&ch);//在scanf函数中%c前有一个空格   表明一次一个的输入  //若是缺少那一个空格  将得不到正确结果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!=NULL){printf("%c    ",T->data);PreOrderTraverse(T->lchild);PreOrderTraverse(T->rchild);}}void InOrderTraverse(BiTree T)//中序遍历{if(T!=NULL){InOrderTraverse(T->lchild);printf("%c    ",T->data);InOrderTraverse(T->rchild);}}void PostOrderTraverse(BiTree T)//后序遍历{if(T!=NULL){PostOrderTraverse(T->lchild);PostOrderTraverse(T->rchild);printf("%c    ",T->data);}}main(void){BiTree T;T=CreateBiTree();PreOrderTraverse(T);printf("\n");InOrderTraverse(T);printf("\n");PostOrderTraverse(T);}/********************************************************//**********************测试用例**************************//************       ABC###DE##F##         ***************//********************************************************/

0 0
原创粉丝点击