首页 > 其他分享 >树的遍历

树的遍历

时间:2024-07-15 19:20:59浏览次数:12  
标签:printq 遍历 孩子 前序 回溯 节点

幻影忍者前情提要

这是一棵二叉树,现在,我们要对它进行遍历 <( ̄︶ ̄)>

前序遍历

顺序

先根节点,再左节点,再右节点

实现

如果树为空,返回,否则:

  1. 访问根节点

  2. 若根节点有左孩子,前序遍历左子树

  3. 若根节点有右孩子,前序遍历右子树

所以,让我们来实现一下该树的前序遍历:

根节点\(1\) -> 左孩子\(2\) -> 左孩子\(4\) -> 左孩子\(5\) -> 回溯至\(4\) -> 右孩子\(6\) ->
回溯至\(4\) -> 回溯至\(2\) -> 回溯至\(1\) -> 右孩子\(3\) -> 右孩子\(7\) -> 左孩子\(8\) -> 右孩子\(9\)
输出应为: \(1,2,4,5, 6, 3 ,7 ,8, 9\)

代码

void printq(int r) {
	if (r) {
		printf("%c", node[r].data);
		printq(node[r].lch);
		printq(node[r].rch);
	}
}

未完待续……

标签:printq,遍历,孩子,前序,回溯,节点
From: https://www.cnblogs.com/Picecone-zzs/p/18303677

相关文章

  • java List集合转Map并遍历输出
    1.使用流转map并且遍历packagecom.demo.toMap;importjava.util.ArrayList;importjava.util.List;importjava.util.Map;importjava.util.stream.Collectors;publicclassMianDemo{publicstaticvoidmain(String[]args){List<NodeList>list=......
  • LeetCode 144. 二叉树的前序遍历
    更多题解尽在https://sugar.matrixlab.dev/algorithm每日更新。组队打卡,更多解法等你一起来参与哦!LeetCode144.二叉树的前序遍历,难度中等。classSolution{publicvoidpreorderTraversal(TreeNoderoot,List<Integer>ans){if(root==null)re......
  • Python数据容器(3)--遍历与列表生成式
    文章目录遍历直接遍历索引遍历list列表tuple元组字典遍历get()方法items()方法enumerate()函数与zip()函数enumerate()函数zip()函数列表生成式语法表现形式编写基本的列表生成式带有条件的列表生成式嵌套列表生成式字符串与列表之间的转换总结遍历:列表生成式遍......
  • 树的层次遍历
    树的层次遍历是指按层次顺序访问树中所有节点的遍历方式。具体的步骤如下:从根节点开始,将根节点入队。进行循环,直到队列为空:弹出队列中的节点,并访问该节点。将该节点的所有子节点依次入队。完成遍历。层次遍历的相关知识点:队列:层次遍历需要使用一个队列来暂存节点。每次......
  • python字典的四种遍历方式
    python字典的四种遍历方式 使用for循环遍历字典的键:my_dict={'a':1,'b':2,'c':3}forkeyinmy_dict:print(key,my_dict[key]) 使用items()方法遍历字典的键值对:my_dict={'a':1,'b':2,'c':3}fork......
  • Map集合的三种遍历方式
    1.第一种遍历方式(通过键找值)importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importjava.util.Set;//Map集合的第一种遍历方式publicclasstest2{publicstaticvoidmain(String[]args){Map<String,String>map=newHash......
  • 广度(宽度)优先搜索(遍历)bfs详解
    简介    广度优先搜索(遍历)是一种在图的搜索遍历中较常见的算法。它的时间复杂度通常要比深度优先搜索(遍历)要低很多,尤其是最短路。这是因为深度优先的思想是走一条路要把它走到底再去考虑别的路,如果一开始走错了,后面会浪费很多时间在死胡同上,而且递归的方法本来就需要......
  • python列表:轻松搞懂列表的声明、遍历、常见操作
    一.列表的定义数据类型list,list是python内置的一种高级数据类型。list是一种有序的集合,基于链表实现在python中应用很广泛声明方式一:l0=[]print(l0,type(l0))l1=[1,2,3.2,'abc']print(l1,type(l1))声明方式二:l2=list()#只能将可迭代类型转化为列表类型......
  • 算法力扣刷题 三十五【二叉树基础和递归遍历】
    前言进入二叉树学习。继续。一、二叉树基础理论理论篇——参考链接以下是大纲:二、遍历方式学习递归法实现前、中、后遍历方法。“输入”阶段此处用了第一次递归法实现根据题目的双指针操作,传递递归的参数。解释递归(1)递归:自己调用自己。重复执行一段代码,但是......
  • 数据结构初阶 遍历二叉树问题(一)
    一.链式二叉树的实现1.结构体代码typedefintBTDateType;typedefstructBinaryTreeNode{ BTDateTypedata; structBinaryTreeNode*left; structBinaryTreeNode*right;}BTNode;大概的图形是这样子2.增删查改我们这里要明确的一点的二叉树的增删查改是没有......