二叉树的存储与遍历
来源:互联网 发布:java string 转json 编辑:程序博客网 时间:2024/05/05 17:38
typedef char status;typedef char Telemtype;#define NULL 0#define OK 1typedef struct bitnode{Telemtype data;struct bitnode *lchild,*rchild;}bitnode,*bitree;Creatbitree(bitree &t){//先序创建二叉树char ch;scanf("%c",&ch);if(ch=='*') t=NULL;else{t=(bitnode *)malloc(sizeof(bitnode));if(!t) exit(0);t->data=ch;Creatbitree(t->lchild);Creatbitree(t->rchild);}return OK;}status Leafcount(bitree t){//统计二叉树中叶子结点的个数if(!t)return 0;else if(t->lchild==0&&t->rchild==0) return 1; else return Leafcount(t->lchild)+Leafcount(t->rchild);}status Depth(bitree t){//计算该二叉树的深度int dl,dr,d;if(!t) return 0;else {///////////#TODO7 dl=Depth(t->lchild); dr=Depth(t->rchild); if(dl>=dr) return d=1+dl; if(dl<dr) return d=1+dr;}}status Nodecount(bitree t){//统计二叉树的总的结点数int n,nl,nr;if(!t) return 0;else{///////////#TODO8nl=Nodecount(t->lchild);nr=Nodecount(t->rchild);n=1+nl+nr;}return n;}void Preordertree(bitree t){//先序序列遍历二叉树if(t){printf("%c",t->data);Preordertree(t->lchild);Preordertree(t->rchild);}}void Inordertree(bitree t){//中序序列遍历二叉树if(t){Inordertree(t->lchild);printf("%c",t->data);Inordertree(t->rchild);}}void Pasttree(bitree t){ //后序序列遍历二叉树if(t){Pasttree(t->lchild);Pasttree(t->rchild);printf("%c",t->data);}}
编译运行结果如下:
<img src="http://img.blog.csdn.net/20140530230219765" alt="" />
2 0
- 二叉树的存储与遍历
- 二叉树的建立与存储,以及遍历方法
- 二叉树的链表存储与遍历
- 数据结构-二叉树的存储结构与遍历
- 二叉树数组顺序存储与遍历
- 二叉树-链式存储的遍历
- 二叉树的存储结构及其遍历
- 二叉树的存储、遍历、建立
- 二叉树的存储、遍历及建立
- 二叉树的遍历和存储
- 二叉树的存储和遍历
- 二叉树的存储、创建以及遍历
- 【数据结构】二叉树的顺序存储结构--遍历二叉树
- 数据结构与算法6:二叉树的存储结构与遍历
- 树的存储与遍历
- 完全二叉树的顺序存储与非递归算法前序遍历
- 二叉树的基本性质、存储方式与遍历(Python实现)
- 二叉树的存储结构与前序遍历(中序/后序原理一样)
- QSignalMapper
- 【TreeView】个人使用小结(逐步完善中...)
- 如何启动一个程序一附加命令行选项启动(创建进程以命令行附加方式 配置 其他启动项)
- jQuery整理笔记二----jQuery选择器整理
- FAST_START_MTTR_TARGET
- 二叉树的存储与遍历
- jQuery整理笔记三----jQuery过滤函数
- Android Sqlite初体验
- asp.net用户登入验证
- jQuery整理笔记四----jQuery操作DOM
- Firebug 网络监视器使用教程英文
- 版本控制工具 GIT入门教程
- jQuery整理笔记五----jQuery事件
- Android IPC通信之Binder通信