首页 > 其他 > 详细

二叉树的创建和遍历

时间:2018-04-24 21:38:47      阅读:188      评论:0      收藏:0      [点我收藏+]
#include<stdio.h> #include<stdlib.h> typedef struct Tree{     char data;     struct Tree *lchild;     struct Tree *rchild; }BTree; void createTree(BTree **t) {     char c;     scanf("%c",&c);     if(c==' ')       *t=NULL;     else if(c!='\0'&&c!='\x0a'){         if(!(*t=(BTree *)malloc(sizeof(BTree))))           exit(0);         (*t)->data=c;         createTree(&((*t)->lchild));         createTree(&((*t)->rchild));     } } //先序遍历 void preorderTraverse(BTree *t) {     if(t!=NULL){         printf("%c",t->data);         if(t->lchild!=NULL)           preorderTraverse(t->lchild);         else           printf("*");         if(t->rchild!=NULL)           preorderTraverse(t->rchild);         else           printf("*");     }else       printf("Thia tree is null\n"); } //中序遍历 void inorderTraverse(BTree *t) {     if(t!=NULL){         if(t->lchild!=NULL)         inorderTraverse(t->lchild);         else           printf("*");         printf("%c",t->data);         if(t->rchild!=NULL)           inorderTraverse(t->rchild);         else           printf("*");     }else       printf("Thia tree is null\n"); } //后序遍历 void postorderTraverse(BTree *t) {     if(t!=NULL){         if(t->lchild!=NULL)           postorderTraverse(t->lchild);         else           printf("*");         if(t->rchild!=NULL)           postorderTraverse(t->rchild);         else           printf("*");         printf("%c",t->data);     }else       printf("Thia tree is null\n"); } int main() {     BTree *t=NULL;     createTree(&t);     printf("start treverse\n");     preorderTraverse(t);     printf("\n");     inorderTraverse(t);     printf("\n");     postorderTraverse(t);     printf("\n");     return 0; }


二叉树的创建和遍历

原文:http://blog.51cto.com/9409270/2107425

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!