当前位置: 首页 > news >正文

二叉树的四种遍历代码实现

二叉树的遍历大致能分为以下几种

1.前序:根 左 右

2.中序:左 根 右

3.后序:左 右 根

4.层序:从根开始一层一层的向下

如上图访问顺序:

前序:1 2 3 N N  N 4 5 N N 6 N N

中序:N 3 N 2 N 1 N 5 N 4 N 6 N

后序:N N 3 N 2 N N 5 N N 6 4 1

层序:1 2 4 3 5 6

ps:这里的N是NULL

前中后都是以递归的方式,层序就和堆差不多是一层一层的访问

理解了上面的代码就可以尝试写出他的代码了

//BinTree.h
#pragma once
#include<stdio.h>
#include<stdlib.h>
typedef int BinTreeType;
struct BinTreeNode
{struct BinTreeNode* left;struct BinTreeNode* right;BinTreeType val;}; 
typedef struct BinTreeNode BTNode;BTNode* BuyBTNode(BinTreeType val);
BTNode* CreateTree();
void PreOrder(BTNode* root);
void InOrder(BTNode* root);
void PostOrder(BTNode* root);
void PreOrder(BTNode* root)
{if (root == NULL){printf("NULL ");return ;}printf("%d ", root->val);PreOrder(root->left);PreOrder(root->right);
}
void InOrder(BTNode* root)
{if (root == NULL){printf("NULL ");return;}InOrder(root->left);printf("%d ", root->val);InOrder(root->right);
}
void PostOrder(BTNode* root)
{if (root == NULL){printf("NULL ");return;}PostOrder(root->left);PostOrder(root->right);printf("%d ", root->val);
}

http://www.lryc.cn/news/347749.html

相关文章:

  • 系统和功能测试:确保软件的功能和易用性
  • 关于服务端接口知识的汇总
  • 树(数据结构)
  • Spring底层入门(十一)
  • 优质资料:大型制造企业等级保护安全建设整改依据,系统现状分析,网络安全风险分析
  • 几种监控工具学习
  • 树莓派python开发
  • 纯血鸿蒙APP实战开发——首页下拉进入二楼效果案例
  • 苹果cms:开启高速缓存加快访问速度
  • 实时数据推送——长轮询,短轮询,长连接
  • 七.音视频编辑-创建视频过渡-应用
  • Android11 InputManagerService启动流程分析
  • 【计算机网络篇】数据链路层(8)共享式以太网的退避算法和信道利用率
  • wordpress主题 7B2 PRO主题5.4.2免授权直接安装
  • Dubbo基本使用
  • JS解密之新js加密实战(二)
  • tsconfig 备忘清单
  • jmeter后置处理器提取到的参数因为换行符导致json解析错误
  • 栈与队列的实现
  • 线性集合:ArrayList,LinkedList,Vector/Stack
  • llama3 发布!大语言模型新选择 | 开源日报 No.251
  • SpringBoot 具体是做什么的?
  • Debian常用命令
  • 常见的前端框架
  • 初学者如何选择ARM开发硬件?
  • Mysql 多表查询,内外连接
  • 【C语言】函数
  • 【LeetCode】每日一题 2024_5_13 腐烂的橘子(经典多源 BFS)
  • 【Linux系统编程】第十七弹---进程理解
  • 【网络安全入门】你必须要有的学习工具(附安装包)零基础入门到进阶,看这一篇就够了!