二叉树遍历的递归实现
来源:互联网 发布:斗蟹软件下载 编辑:程序博客网 时间:2024/06/05 10:56
/*二叉树遍历的递归实现*/#include<stdio.h>typedef struct btnode{ char data; struct btnode *lchild,*rchild; /*指向左右孩子的指针*/}BinTree;/*二叉树的创建*/BinTree * CreateTree(BinTree *T){ char ch; scanf("%c",&ch); if(ch=='#') return 0; else { T=(BinTree *)malloc(sizeof(BinTree)); T->data=ch; T->lchild=CreateTree(T->lchild); /*创建左子树*/ T->rchild=CreateTree(T->rchild); /*创建右子树*/ return(T); }}/*先序遍历根指针为T的二叉树*/void Preorder(BinTree *T){ if(T) { printf("%c ",T->data); /*访问根节点T*/ Preorder(T->lchild); /*先序遍历左子树*/ Preorder(T->rchild); /*先序遍历右子树*/ }}/*中序遍历根指针为T的二叉树*/void inorder(BinTree *T){ if(T) { inorder(T->lchild); /*中序遍历左子树*/ printf("%c ",T->data); /*访问根节点T*/ inorder(T->rchild); /*中序遍历右子树*/ }}/*后序遍历根指针为T的二叉树*/void postorder(BinTree *T){ if(T) { postorder(T->lchild); /*后序遍历左子树*/ postorder(T->rchild); /*后序遍历右子树*/ printf("%c ",T->data); /*访问根节点T*/ }}main(){ BinTree *b; printf("请按先序的方式输入二叉树的结点元素:\n"); b=CreateTree(b); printf("前序输出:\n"); Preorder(b); printf("\n"); printf("中序输出:\n"); inorder(b); printf("\n"); printf("后序输出:\n"); postorder(b); printf("\n");}
阅读全文
0 0
- 非递归实现二叉树的遍历
- 二叉树遍历的递归实现图解
- 二叉树的遍历递归实现
- 非递归实现二叉树的遍历
- 二叉树遍历的非递归实现
- 二叉树遍历的非递归实现
- 二叉树遍历的非递归实现
- 二叉树的创建遍历 递归实现
- 二叉树的非递归遍历实现
- 二叉树遍历的非递归实现
- 非递归实现二叉树的遍历
- 二叉树遍历的非递归实现
- 二叉树遍历的非递归实现
- 非递归遍历二叉树的实现
- 二叉树遍历的非递归实现
- 二叉树的递归遍历----java实现
- 二叉树遍历的递归实现
- 二叉树遍历的递归实现
- 机器人峰会厂商
- VFW 生成AVI 音视频文件
- Jquery
- CSS3: The missing manual 《css3秘笈》笔记+布局、设计优秀资源整理
- 忘记了密码处理手法
- 二叉树遍历的递归实现
- java web中的Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.Out
- java中的构造函数
- jquery判断服务器文件是否存在
- Swagger2 生成 Spring Boot API 文档
- Dog Numbering
- C#实现AES(Rijndael算法)加密解密
- 【三分钟让你彻底明白LinearLayout线性布局】
- PHP程序员进阶学习书籍参考指南