二叉树层序遍历递归与非递归_秋招之路-二叉树四种遍历(递归和非递归代码实现)...

news/2024/7/7 11:20:36

81a9a6adb0dfb73aa49ae608d1a7cb93.png

前言

今天和大家带来的是二叉树的常见面试题,前序,中序,后序,层次遍历,递归和非递归,这里用 C++ 代码实现。

二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。

前序遍历

若树为空,则空操作返回。否则,先访问根节点,然后前序遍历左子树,再前序遍历右子树。(根->左->右)。

ba04a30fd47fff5362869e047bc4a17e.png

中序遍历

若树为空,则空操作返回。否则,从根节点开始(注意并不是先访问根节点),中序遍历根节点的左子树,然后是访问根节点,最后中序遍历根节点的右子树。(左->根->右)。

5d3c39278189832432e3aeeb58ccd99d.png

后序遍历

若树为空,则空操作返回。否则,从左到右先叶子后节点的方式遍历访问左右子树,最后访问根节点。(左->右->根)。

e0520e24a1ec0013a1ea2aade8808ec0.png

层次遍历

如图

0253a658c2a6856692b9c17d8b8dd5e7.png

下面来介绍一下具体的代码实现。

1、二叉树的定义

struct 

2、构造一棵二叉平衡树(递归+非递归)

//小于根节点的放在左子树,否则放在右子树 (递归)

3、递归实现二叉树树的遍历

//前序遍历:根节点-》左节点-》右节点

4、非递归实现二叉树的遍历

/*

5、层次遍历(广度优先搜索)二叉树

void 

完整代码:

/*

运行效果:

9604fc61353a623920b3012ee2547bfe.png

今天的知识点就到这里了,你学会了吗?

有问题,欢迎和我一起交流~


推荐阅读

秋招之路-深刻理解 Linux 进程间七大通信(IPC)​mp.weixin.qq.com 关于高考选志愿​mp.weixin.qq.com 秋招之路-经典面试题之手写字符串函数​mp.weixin.qq.com

52349fd3e0aaca16af0fa56e3c641e00.png

cae9761ac75634609a4216e809e28be7.png

http://www.niftyadmin.cn/n/2067587.html

相关文章

oracle根据分区移动,讲解Oracle移动数据文件到新分区的过程

讲解Oracle移动数据文件到新分区的过程以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!此过程用sqlplus以sys登录后进行如下步骤 ◆ 将数据文件offlinealter database datafile D:\ORACLE\PR…

python tkinter button_python-tkinter按钮不显示

当我执行脚本时,背景图像可以正常工作,它将与窗口的大小匹配,但是,我无法显示按钮(它们尚无功能).我对python相当陌生,所以不确定是否将按钮用作事件是一个好主意.任何帮助表示赞赏. import turtle import tkinter as tk from tkinter import * from PIL import Image,ImageTk …

oracle里面cat,Oracle 12c 中推荐使用 catcon.pl 执行SQL脚本

https://www.cndba.cn/dave/article/225https://www.cndba.cn/dave/article/2251 说明在Oracle 12c中,Oracle 建议使用catcon.pl 脚本来执行SQL 脚本和SQL 语句,其可以在root 和指定的PDB中执行。 Catcon.pl脚本是一个perl 脚本,需要在操作…

面试:做过sql优化吗?

近来面试找工作经常会遇见这种问题: 做过数据库优化吗?大数据量基础过吗?系统反应慢怎么查询? 这咱也没背过啊,面试还老问,现在的网站主要的压力都来自于数据库,频繁的数据库访问经常会使系统瘫…

python动态加载模块_python3使用exec来动态加载模块

xxglsvr.py import sys # locals() 函数来得到一个局部变量字典。 # 之后你就能从局部字典中获取修改过后的变量值了 def main(procName): loc locals() exec("from %s import call_sub" % procName) call_sub loc[‘call_sub‘] call_sub("private " p…

检测接口数据 - Charles使用

1.Charles下载地址 : 百度一下 2.使用方法 : http://blog.devtang.com/2015/11/14/charles-introduction/ 3.charles破解: Registered Name:https://zhile.ioLicense Key: 48891cf209c6d32bf4 破解步骤 董铂然的博客 - 详解https://www.cnblo…

oracle pue考试,oracle分布式事务(理论)

基本概念Local Coordinator:在分布事务中,必须参考其它节点上的数据才能完成自己这部分操作的站点。Global Coordinator:分布事务的发起者,负责协调这个分布事务。Commit Point Site:在分布事务中,首先执行…

python一般做什么项目好_你用 Python 做过什么有趣的数据挖掘/分析项目?

问题 学习了 Python, numpy, scipy 等, 想做一些数据方面的项目,但是之前又没有这方面的经验。所以想知道大家都做过什么有趣的项目, 或者有什么好入手的方向推荐下。(注:本篇文章代码和网址较多…