二叉树二叉树虐我千万遍劳资今天终于搞明白了哈哈哈哈哈
2015-12-17 17:26
316 查看
#include <stdio.h> #include <stdlib.h> typedef char TElmType; typedef struct BiNode{ TElmType data; struct BiNode *lchild,*rchild; }BiTNode,*BiTree; void CreateBiTree(BiTree *T) { TElmType ch; scanf("%c",&ch); if (ch=='#') { *T=NULL; } else{ *T=(BiTree)malloc(sizeof(BiTNode)); (*T)->data=ch; CreateBiTree(&((*T)->lchild)); CreateBiTree(&((*T)->rchild)); } } void ProTraverse(BiTree *T) { if(*T){ printf("%c",(*T)->data); ProTraverse(&((*T)->lchild)); ProTraverse(&((*T)->rchild)); } } void InTraverse(BiTree *T) { if(*T){ InTraverse(&((*T)->lchild)); printf("%c",(*T)->data); InTraverse(&((*T)->rchild)); } } void PostTraverse(BiTree *T) { if(*T){ PostTraverse(&((*T)->lchild)); PostTraverse(&((*T)->rchild)); printf("%c",(*T)->data); } } void DestroyBiTree(BiTree *T) { if (*T) { if ((*T)->lchild) DestroyBiTree(&((*T)->lchild)); if ((*T)->rchild) DestroyBiTree(&((*T)->rchild)); free(*T); *T=NULL; } } int IsEmptyTree(BiTree *T) { if ((*T)==NULL) { return 0; } else return 1; } int main() { BiTree T; printf("按照前序遍历的方法输入一棵树:\n"); CreateBiTree(&T); printf("前序遍历:\n"); ProTraverse(&T); printf("\n"); printf("中序遍历:\n"); InTraverse(&T); printf("\n"); printf("后序遍历:\n"); PostTraverse(&T); printf("\n"); printf("销毁前:\n"); int status=IsEmptyTree(&T); if (status) { printf("Not Empty\n"); } else printf("Empty\n"); printf("销毁后:\n"); DestroyBiTree(&T); status=IsEmptyTree(&T); if (status) { printf("Not Empty\n"); } else printf("Empty\n"); return 0; }
相关文章推荐
- 并发编程网-线程池-说明
- 深入理解Android之Gradle
- 01【iOS总结】UIView、UILabel、UITextField、UIButton 、目标动作机制(+UIAlertView、UIAlertController)
- 12.缺陷跟踪系统Mantis的问题生命周期和工作流
- 短消息调试笔记
- redis 学习手册之发布和订阅pubsub操作
- NSRunLoop
- iOS xib文件引入的两种方式
- 广点通sdk接入 _Banner广告
- 决策分类树算法之ID3,C4.5算法系列
- GSP序列模式分析算法
- Tips for DDIC and Search Help.docx
- Spark SPARK_WORKER_DIR 磁盘满
- Java ftp实现文件的上传和下载ftp,sftp sun.net.ftp.FtpProtocolException:Welcome message: SSH-2.0-OpenSSH_5.1
- 匿名内部类如何同时调用多个方法
- Objective-C Block的实现
- Expectation maximization - EM算法学习总结
- 网页上传文件,到服务器,再讲数据导入数据库
- easyui combobox 省市区三级联动
- AdaBoost装袋提升算法