二叉树的递归遍历(先序,中序,后序)
来源:互联网 发布:网络汇聚层 编辑:程序博客网 时间:2024/05/16 20:29
#include "stdio.h"#include "malloc.h"#define M 100typedef struct node{ /* 采用二叉链表存储结构 */ char data; struct node *lchild,*rchild;}BTnode;BTnode *create()/*利用先序遍历的过程创建二叉树*/{ BTnode *t; char ch; scanf("%c",&ch); if(ch=='#') t=NULL; else {t=(BTnode *)malloc(sizeof(BTnode)) ; t->data=ch; t->lchild=create(); t->rchild=create(); } return t;}void preorder(BTnode *t)/*先序遍历二叉树*/{ if(t!=NULL) printf("%c ",t->data); if(t->lchild!=NULL) preorder(t->lchild); if(t->rchild!=NULL) preorder(t->rchild);}void inorder(BTnode *t)/*中序遍历二叉树*/{ if(t!=NULL) { if(t->lchild!=NULL) inorder(t->lchild); printf("%c ",t->data); if(t->rchild!=NULL) inorder(t->rchild); }}void postorder(BTnode *t)/*后序遍历二叉树*/{ if(t!=NULL) { if(t->lchild!=NULL) postorder(t->lchild); if(t->rchild!=NULL) postorder(t->rchild); printf("%c ",t->data); }}void main(){BTnode *t;printf("Input data:") ;t=create();printf("==================The result==========================\n");printf("The preorder is:\n");preorder(t);printf("\n");printf("The inorder is:\n");inorder(t);printf("\n");printf("The postorder is:\n");postorder(t);printf("\n");}
0 0
- 二叉树的先序、中序、后序递归遍历和非递归遍历
- 二叉树的递归创建,先序(中序、后序)递归遍历二叉树
- 二叉树T 的先序遍历、中序遍历、后序遍历(递归实现)
- 二叉树的先序、中序、后序遍历的递归和非递归实现
- 二叉树的后序,先序,中序遍历的非递归遍历
- 二叉树的先序、中序、后序、层序递归及非递归遍历
- 二叉树的先序/中序/后序(递归、非递归)+层序遍历
- 二叉树的遍历 中序 后序 先序 递归 非递归
- 二叉树的创建和先序,中序,后序,递归,非递归遍历
- 二叉树的遍历 先序 中序 后序 递归非递归
- 二叉树的先序、中序、后序遍历(递归 and 非递归)
- 给出二叉树的先序和中序遍历,递归求解后序遍历
- 二叉树的先序遍历、中序遍历以及后序遍历(递归以及非递归方式)
- 二叉树 非递归 先序遍历 中序遍历 后序遍历 层次遍历
- 递归法遍历二叉树 (先序遍历 中序遍历 后序遍历)
- 二叉树的先序遍历、中序遍历、后序遍历、层次遍历的递归实现
- 二叉树的遍历(2)--先序遍历,中序遍历,后序遍历(非递归)
- 二叉树的先序,中序,后序遍历的非递归算法
- linux下使用git仓库,以及使用github
- maximum-depth-of-binary-tree(二叉树的最大深度)
- Python中的random模块
- 负债表重分类
- 二叉树最大宽度和高度
- 二叉树的递归遍历(先序,中序,后序)
- 网页设计经验总结
- system.img解包打包
- Linux 下查询 DNS 服务器信息
- z-index全面讲解
- R13shengji
- 通过源码分析一个linux进程可以运行多个android应用
- Android系统源码阅读(9):Content Provider数据更新通知
- 指向函数的指针