第十周项目2-二叉树遍历的递归算法
来源:互联网 发布:万科金域名城业主论坛 编辑:程序博客网 时间:2024/06/02 23:08
问题及代码:
实现二叉树的先序中序后序遍历的递归算法,头文件brtee.h与brtee.cpp可见项目一算法库。
(1)brtee.cpp
void PreOrder(BTNode *b){ if(b!=NULL) { printf("%c",b->data); PreOrder(b->rchild); PreOrder(b->lchild); }}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); }}
(2)main.cpp
#include <stdio.h>#include<malloc.h>#include"btree.h"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
- 第十周 项目2 二叉树的遍历递归算法
- 第十周-项目2 - 二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周-项目2 - 二叉树遍历的递归算法
- 第十周 项目2-二叉树遍历的递归算法
- 第十周项目2--二叉树遍历的递归算法
- 第十周项目2【二叉树遍历的递归算法】
- 第十周 项目2 二叉树遍历的递归算法
- 第十周 项目2-二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周项目2--二叉树遍历的递归算法
- 第十周项目2 - 二叉树遍历的递归算法
- 第十周 项目2--二叉树遍历的递归算法
- 第十周项目2二叉树遍历的递归算法
- 第十周 项目2-二叉树遍历的递归算法
- 第十周项目2-二叉树遍历的递归算法
- 第十周项目2- 二叉树遍历的递归算法
- 两点经纬度求曲面距离
- 报错:table is not mapped……
- Ubuntu 升级后版本号还是显示旧版本号问题解决方法
- HDOJ 1003 Max Sum C++
- 宏定义
- 第十周项目2-二叉树遍历的递归算法
- CodeBlocks调试功能快捷教程
- 泡泡背景
- block,inline和inline-block概念和区别
- <HTML5秘籍>——第7章(CSS3与响应式Web设计)
- Cocos测试:局域网使用clumsy模拟广域网网络延迟
- 水题: OpenJudge (百练 )2807 : 两倍
- 电脑大小端的检测
- Linux上安装opencv(亲测可用)