前序创建和遍历二叉树

来源:互联网 发布:阿里云弹性公网ip绑定 编辑:程序博客网 时间:2024/06/06 19:22
#include <stdio.h>#include <stdlib.h>typedef char Element;typedef struct BiTNdoe{Element date;BiTNdoe* lchild;BiTNdoe* rchild;}BiTNdoe,*BiTree;//创建二叉树void CreateBiTree(BiTree* T){Element c;scanf("%c",&c);if(' '==c){(*T)=NULL;}else{(*T)=(BiTNdoe*)malloc(sizeof(BiTNdoe));(*T)->date=c;CreateBiTree(&(*T)->lchild);    //递归创建左子树CreateBiTree(&(*T)->rchild);    //递归创建右子树}}//具体的访问细节void Visit(Element date,int leve){printf("%c 在第 %d 层 \n",date,leve);}//前序遍历void preTraversal(BiTree T,int leve){if(T){Visit(T->date,leve);preTraversal(T->lchild,leve+1);  //前序遍历左子树preTraversal(T->rchild,leve+1);  //前序遍历右子树}}int main(){int leve=1;BiTree T=NULL;printf("请按照前序遍历输入数据,空指针用空格代替!\n");CreateBiTree(&T);preTraversal(T,leve);return 0;}

0 0
原创粉丝点击