第10周项目2- 二叉树遍历的递归算法
来源:互联网 发布:java模板 编辑:程序博客网 时间:2024/05/29 16:06
/* Copyright (c)2016,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:llh.cpp作 者:李良涵·完成日期:2016年11月24日 版 本 号: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; }
运行结果:
知识点总结:
二叉树遍历的递归算法。
心得体会:了解了二叉树遍历的递归算法,对其基本算法的实现初步了解
0 0
- 第10周 项目2—二叉树遍历的递归算法
- 第10周项目2——二叉树遍历的递归算法
- 第10周实践项目2-二叉树遍历的递归算法
- 第10周、项目2—二叉树遍历的递归算法
- 第10周 项目2-二叉树遍历的递归算法
- 第10周上机实践项目2—— 二叉树遍历的递归算法
- 第10周—项目2 二叉树遍历的递归算法
- 第10周项目2- 二叉树遍历的递归算法
- 第10周项目2二叉树遍历的递归算法
- 第10周 项目2- 二叉树遍历的递归算法
- 第10周项目2二叉树遍历的递归算法
- 第10周 项目2 - 二叉树遍历的递归算法
- 第10周SHH数据结构-【项目2- 二叉树遍历的递归算法 】
- 第10周 项目2—二叉树遍历的递归算法 .
- 第10周项目2 二叉树遍历的递归算法
- 第10周项目2 二叉树遍历的递归算法
- 第10周 项目2 - 二叉树遍历的递归算法
- 【第10周 项目2 - 二叉树遍历的递归算法】
- 第十三周-项目一 验证算法(3)
- MFC 让控件失去焦点
- 第12周项目2-操作用邻接表存储的图
- 第十二周项目4——利用遍历思想求解图问题(3)(4)
- 跨平台Socket封装——跨平台头文件
- 第10周项目2- 二叉树遍历的递归算法
- Yarn的架构及原理
- 多元函数极值、Hessian矩阵、正定矩阵
- 第十三周项目三(Dijkstra算法的验证)
- 第十二周项目二(操作用邻接表实现的图)
- arcgis连接oracle,并向oracle中导入shp数据
- IOS App注册支持文件类型
- 【第13周 项目3 - Dijkstra算法的验证】
- 第13周项目2-Kruskal算法的验证