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

图的遍历

时间:2023-11-11 11:35:55浏览次数:33  
标签:node 遍历 queue enqueue right null

实现下图图的遍历关于深度广度优先遍历,先访问左边节点

深度优先遍历:

function depthFirstTraversal(node):
if node is null:
return
visit(node)
depthFirstTraversal(node.left)
depthFirstTraversal(node.right)

广度优先遍历:

function breadthFirstTraversal(root):
if root is null:
return
queue = new Queue()
queue.enqueue(root)
while queue is not empty:
node = queue.dequeue()
visit(node)
if node.left is not null:
queue.enqueue(node.left)
if node.right is not null:
queue.enqueue(node.right)

标签:node,遍历,queue,enqueue,right,null
From: https://www.cnblogs.com/TerMo/p/17825700.html

相关文章

  • for…in 遍历对象会把原型遍历出来不被推荐
    for...in的特点:1.按照从小到大,优先迭代数字属性;2.会迭代“私有”以及“原型链上(公有)”所有“可枚举”的属性:它的循环会去原型链上找,非常消耗性能3.只能迭代“可枚举”的属性,不可枚举的拿不到4.不能迭代“Symbol类型”的属性for…in遍历对象会把原型遍历出来不被推荐......
  • 已知数组arr = [2,20,3,12,9],现在要对数组进行遍历,只要数组存在大于10的元素,则输出tru
    Avarres=arr.filter((val1,val2)=>{returnval1>10;})console.log(res);Bvarres=arr.some((val1,val2)=>{returnval1>10;})console.log(res);Cvarres=arr.every((val1,val2)=>{returnval1>10;})console.log(res);Dvarres......
  • 面试必刷TOP101:24、二叉树的中序遍历
    题目题解深度优先搜索-递归publicclassSolution{/***代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可***@paramrootTreeNode类*@returnint整型一维数组*/publicint[]inorderTraversal(TreeNo......
  • 02_二叉树的迭代遍历
    二叉树的迭代遍历//前序遍历顺序:中-左-右,入栈顺序:中-右-左classSolution{publicList<Integer>preorderTraversal(TreeNoderoot){List<Integer>result=newArrayList<>();if(root==null){returnresult;}St......
  • List的遍历
    List的遍历方式迭代器遍历,普通for遍历,增强for遍历,Lamda遍历,列表迭代器遍历演示代码如下publicclassMain{publicstaticvoidmain(Stringa[]){List<String>list=newArrayList<>();list.add("zhang");list.add("wang");......
  • 面试必刷TOP101:23、二叉树的前序遍历
    题目题解importjava.util.*;publicclassSolution{publicvoidpreorder(List<Integer>list,TreeNoderoot){//遇到空节点则返回if(root==null)return;//先遍历根节点list.add(root.val);//再去左子树......
  • js:遍历数组
    1.循环类型forEach()forEach();语法forEach(callbackFn)forEach(callbackFn,thisArg)例子/****@param{any}element数组中正在处理的当前元素*@param{number}index数组中正在处理的当前元素的索引。*@param{Array}array1调用了forEach()的数组本身*/co......
  • 二叉树前中后序遍历(递归和非递归)+层次遍历
    直接看代码啦!前中后指的是跟被访问的次序!递归很好理解,重点是非递归!!!1#define_CRT_SECURE_NO_WARNINGS2#include<iostream>3#include<fstream>4usingnamespacestd;56typedefstructTreeNode7{8intdata;9intflag;10str......
  • python循环遍历字典: title_content_list.append([key, value])print(ti
    示例示例Python循环遍历字典的方法有以下几种:使用for...in循环:Python循环遍历字典的方法有以下几种:1.使用for...in循环:pythondict={'name':'Tom','age':20,'gender':'male'}#遍历所有的键forkeyindict:print(key)#遍历所有的值forvalueindict.values......
  • 在bat中使用forfiles遍历文件,示例:删除N天之前文件
    Windows定时删除N天之前文件(最新推荐)复制一下内容,粘贴至delete.bat文件中。脚本说明:“D:\test”为文件删除路径。-7为7天之前forfiles/p"D:\test"/s/m*.*/d-7/c"cmd/cdel@path":pause在任务管计划中创建执行脚本的计划,定时执行就好了,这里就不演示了,可以查看......