第九周项目二C/C++二叉树遍历的递归算法
来源:互联网 发布:聚享游源码 编辑:程序博客网 时间:2024/05/29 09:07
/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:.cpp*完成日期:2017年11月16日 *版 本 号: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;}注:在main函数中,创建的用于测试的二叉树如下——
运行结果:
阅读全文
0 0
- 第九周项目二C/C++二叉树遍历的递归算法
- 第九周项目二-二叉树遍历的递归算法
- 第九周项目二 二叉树遍历的递归算法
- 第九周 项目二 二叉树遍历的递归算法
- 第九周 项目二 二叉树遍历的递归算法
- 第九周-项目二-二叉树遍历的递归算法
- 第九周项目二二叉数遍历的递归算法
- 第九章项目二 二叉树遍历的递归算法
- 第九周项目二 二叉树遍历递归算法
- 第九周项目2二叉树遍历的递归算法
- 第九周项目2---二叉树遍历的递归算法
- 第九周 项目2-二叉树遍历的递归算法
- 第九周 项目2 二叉树遍历的递归算法
- 第九周项目2-二叉树遍历的递归算法
- 第九周项目2-二叉树遍历的递归算法
- 【第九周项目2】二叉树遍历的递归算法
- 第九周项目2-二叉树遍历的递归算法
- 第九周项目2 二叉树遍历的递归算法
- Linux下C/C++对MySQL数据库操作
- 过滤器的简单使用案例
- 常用Linux指令汇总
- 欢迎使用CSDN-markdown编辑器
- Android 异步消息处理机制之Handler、Message、Looper
- 第九周项目二C/C++二叉树遍历的递归算法
- 第十一周——图基本算法库
- 判断滚动条距离顶部距离
- @inject('request', 'Illuminate\Http\Request') laravel 绑定变量到页面
- 第十周项目一 层次遍历算法的验证(1)
- 第十一周项目4 — 利用遍历思想求解图问题 (1)
- 【分治算法】整数划分
- windows下创建软链接
- 【Python Trick】判断字符串是否为空