九周 项目2 二叉树遍历的递归算法
来源:互联网 发布:mac 查看磁盘剩余空间 编辑:程序博客网 时间:2024/06/06 15:01
问题及描述:
/* 烟台大学计算机学院 文件名称:angu.cpp 作者:范宝磊 完成日期:2017年10月29日 问题描述:实现二叉树的先序、中序、后序遍历的递归算法, 并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 输入描述:无 输出描述:输出二叉树先中后序遍历结果 */ #include <stdio.h> #include "../btree.h"//用到了btree.h void PreOrder(BTNode *b) //先序遍历的递归算法 { if (b!=NULL) { printf("%c ",b->data); //访问根节点 PreOrder(b->lchild); //递归访问左子树 PreOrder(b->rchild); //递归访问右子树 } } void InOrder(BTNode *b) //中序遍历的递归算法 { if (b!=NULL) { InOrder(b->lchild); //递归访问左子树 printf("%c ",b->data); //访问根节点 InOrder(b->rchild); //递归访问右子树 } } void PostOrder(BTNode *b) //后序遍历的递归算法 { if (b!=NULL) { PostOrder(b->lchild); //递归访问左子树 PostOrder(b->rchild); //递归访问右子树 printf("%c ",b->data); //访问根节点 } } int main() { BTNode *p; CreateBTNode(p,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))"); printf("先序:"); PreOrder(p); printf("\n"); printf("中序:"); InOrder(p); printf("\n"); printf("后序:"); PostOrder(p); printf("\n"); DestroyBTNode(p); return 0; }运行结果:
学习心得:
此”实现二叉树的先序、中序、后序遍历的递归算法,因此学会利用遍历算法实现程序。
阅读全文
0 0
- 九周 项目2 二叉树遍历的递归算法
- 九周 项目2 二叉树遍历的递归算法
- 第十周 项目2 二叉树的遍历递归算法
- 第十周-项目2 - 二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周-项目2 - 二叉树遍历的递归算法
- 第十周 项目2-二叉树遍历的递归算法
- 第十周项目2--二叉树遍历的递归算法
- 第十周项目2【二叉树遍历的递归算法】
- 第十周 项目2 二叉树遍历的递归算法
- 第十周 项目2-二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周项目2--二叉树遍历的递归算法
- 第十周项目2 - 二叉树遍历的递归算法
- 第十周 项目2--二叉树遍历的递归算法
- 第十周项目2二叉树遍历的递归算法
- 第十周 项目2-二叉树遍历的递归算法
- MongoDB:20-MongoDB- 正则表达式
- C# 局部函数与事件
- 通过异步过程调用(APC)注入DLL
- 网路编程技术
- 日常的一些八阿哥
- 九周 项目2 二叉树遍历的递归算法
- 自定义拦截器
- LeetCode 514: Freedom Trail 解题与思考
- Java MyBatis(3)------详解自定义Generator Plugin
- NSFZOJ #1064. && 洛谷 P1850【NOIP2016】换教室
- 220. Contains Duplicate III
- 动态调用webservice
- js基础语法
- win10 uwp 萤火虫效果