【第十周 项目2-二叉树编历的递归算法】
来源:互联网 发布:淘宝发货快递公司填错 编辑:程序博客网 时间:2024/06/08 19:14
问题及代码:
/*
*Copyright(c)2015级,烟台大学 计算机与控制工程学院
*All right reserved.
*文件名称:main.cpp
*作者:胡馨月
*完成日期;2016年11月3日
*版本号;v1.0
*
*问题描述:实现二叉树的先序、中序、后序遍历的递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。
*程序输出:
*/
#include <stdio.h>
#include "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 *b;
CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");
printf("二叉树b:");
DispBTNode(b);
printf("\n");
printf("先序遍历序列:\n");
PreOrder(b);
printf("\n");
printf("中序遍历序列:\n");
InOrder(b);
printf("\n");
printf("后序遍历序列:\n");
PostOrder(b);
printf("\n");
DestroyBTNode(b);
return 0;
}
运行截图:
知识点总结:
再次深化了递归算法的应用
- 【第十周 项目2-二叉树编历的递归算法】
- 第十周 项目2 二叉树的遍历递归算法
- 第十周-项目2 - 二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周-项目2 - 二叉树遍历的递归算法
- 第十周 项目2-二叉树遍历的递归算法
- 第十周项目2--二叉树遍历的递归算法
- 第十周项目2【二叉树遍历的递归算法】
- 第十周 项目2 二叉树遍历的递归算法
- 第十周 项目2-二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周项目2--二叉树遍历的递归算法
- 第十周项目2 - 二叉树遍历的递归算法
- 第十周 项目2--二叉树遍历的递归算法
- 第十周项目2二叉树遍历的递归算法
- 第十周 项目2-二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- ubuntu teamviewer
- 第十周项目四(判断二叉树的相似)
- C#线程池
- Android官方开发文档Training系列课程中文版:Activity测试之创建运行测试
- 数据结构之二叉树
- 【第十周 项目2-二叉树编历的递归算法】
- EditText四位自动空格
- springmvc接收一个类多个对象数据(提交整个表格数据)
- 第9周项目2 对称矩阵压缩存储的实现与应用(1)
- 简单逻辑实现一个计算器,没有用到树的知识
- 合并排序算法-c++
- 容器适配器
- U3D同时播放2个声音
- 小白学习Q/GDW 1376.1-2013