2022.11.19

二叉树中序遍历递归和非递归算法

  • 任务描述
  • 相关知识
  • 编程要求
  • 测试说明
  • C/C++代码

任务描述

本关任务:给定一棵二叉树,使用递归和非递归的方法实现二叉树的中序遍历结果。

相关知识

向前翻,相关知识相同这里是传送门哦

编程要求

本关的编程任务是补全右侧代码片段InOrder和InOrder_iter中Begin至End中间的代码,具体要求如下:

  1. 在InOrder中使用递归算法实现二叉树中序遍历递归算法并输出结果,中间没有空格,末尾不换行。
  2. 在InOrder_iter中实现二叉树的中序遍历非递归算法并输出结果,中间没有空格,末尾不换行。

测试说明

平台将自动编译补全后的代码,并生成若干组测试数据,接着根据程序的输出判断程序是否正确。

以下是平台的测试样例:

测试输入:ABC##D##EF###
预期输出
CBDAFE
CBDAFE

测试输入:ABCD###E#F##G##
预期输出
DCBEFAG
DCBEFAG

开始你的任务吧,祝你成功!

C/C++代码

//
//  binary_tree.cpp#include "binary_tree.h"// 二叉树的中序遍历
// 参数:二叉树根节点root
// 输出:二叉树的中序遍历,中间没有空格,末尾不换行。
void InOrder(BTNode* root)
{// 请在这里补充代码,完成本关任务/********** Begin *********/if(root!=NULL){InOrder(root->lchild);printf("%c",root->data);InOrder(root->rchild);}/********** End **********/
}// 二叉树的中序遍历非递归算法
// 参数:二叉树根节点root
// 输出:二叉树的中序遍历,中间没有空格,末尾不换行。
void InOrder_iter(BTNode* root)
{// 请在这里补充代码,完成本关任务/********** Begin *********/BTNode *St[100000],*p;int top=-1;if(root!=NULL){p=root;while(top>-1||p!=NULL){while(p!=NULL){top++;St[top]=p;p=p->lchild;}if(top>-1){p=St[top];top--;printf("%c",p->data);p=p->rchild;}}printf("\n");}/********** End **********/
}

数据结构二叉树中序遍历递归和非递归算法相关推荐

  1. 二叉树的中序遍历-递归和非递归算法

    创建二叉树就不说了,这里直接: 中序递归遍历算法 void InOrder(BiTree T){if(T){InOrder(T->lchild);cout<<T->data&l ...

  2. 二叉树中序遍历-递归与非递归

    递归版本: public static void reversePos(Node head){if (head == null)return;reversePos(head.left);System. ...

  3. 二叉树先序遍历、中序遍历、后序遍历 递归和非递归算法

    一.二叉树先序遍历 (1)递归算法 // 递归先序遍历 public static void recursionPreorderTraversal(TreeNode root) {if (root ! ...

  4. 二叉树的中序遍历 递归与非递归

    94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [ ...

  5. 二叉树的后序遍历-递归和非递归算法

    同样的,创建的算法在先序中有,略去. 后序递归遍历算法 void PostOrder(BiTree bt){if(bt){PostOrder(bt->lchild);PostOrder(bt-& ...

  6. 二叉树后序遍历-递归与非递归(左右根)

    递归版本: public static void reverseIn(Node head){if (head == null)return;reverseIn(head.left);reverseIn ...

  7. 二叉树中序遍历(递归法和迭代法(非递归法))——C++

    声明:本文原题主要来自力扣,记录此博客主要是为自己学习总结,不做任何商业等活动! 二叉树的遍历有前序遍历.中序遍历.后序遍历和层次遍历,其中二叉树基本知识点可以参考博主上篇博客(二叉树基本知识点图文介 ...

  8. 详细图解二叉树中序遍历(非递归C++)LeetCode94

    详细图解二叉树中序遍历(非递归) 二叉树中序递归含义 LeetCode题目94 详细图解 源代码 运行结果 二叉树中序递归含义 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树.若二叉树为空则结 ...

  9. 【C语言】二叉树中序遍历(递归和非递归)算法

    二叉树中序遍历的实现思想是: 访问当前节点的左子树: 访问根节点: 访问当前节点的右子树: 图 1 二叉树 以图  1 为例,采用中序遍历的思想遍历该二叉树的过程为: 访问该二叉树的根节点,找到 1: ...

最新文章

  1. SQL server 小笔记
  2. 直播实录 | AlphaGo Zero是如何实现无师自通的?
  3. leetcode 583. Delete Operation for Two Strings | 583. 两个字符串的删除操作(最长公共子序列,DP)
  4. codeforces1453 E. Dog Snacks
  5. 大学教师读博后违约离职,校方索赔79万!
  6. dell服务器r730安装esxi系统,安装Esxi系统重装Esxi系统
  7. d3 v4 api interpolate
  8. 安装Nginx到linux服务器(Ubuntu)详解
  9. 【数据结构和算法笔记】:数据结构概述
  10. ubuntu下载linux源码
  11. MagicDraw-序列图
  12. Android EditText 属性汇总
  13. Eclipse中source folder、folder、package的区别?
  14. 什么是“秒杀”?为什么传统项目中也有“秒杀”的概念?一起来分析一下.
  15. Win10 官方版下载地址 windows10 1909微软原版光盘镜像下载
  16. 移动研发平台EMAS 3.0全新升级,欢迎登陆阿里云官网搜索EMAS进行体验
  17. 三菱FX系列PLC以太网连接昆仑通态MCGS
  18. Selenium测试报错 Other element would receive the click 问题
  19. Prolog实现太阳系星体识别专家系统
  20. GD32F303固件库开发

热门文章

  1. PSVR设计不让玩家来回走动的原因
  2. buctoj-python 2022.5.12
  3. 基于深度学习的水果检测与识别系统(Python界面版,YOLOv5实现)
  4. GPRM/GNRMC定位信息的读取与解析
  5. js jquery阻止冒泡事件
  6. linux基本操作及shell编程使用和vim
  7. 自动化工具后起之秀Ansible的部署实践
  8. elementplus表格合并
  9. 【看表情包学Linux】进程优先级 | 查看系统进程 | 优先级修改 | 进程的切换 | 竞争性与独立性 | 并行并发的概念 | 环境变量
  10. elasticsearch在重启机器后出现[transport.netty][solr001] exception caught on transport layer[[[id:0x2d16759]]