目录

○树的层次遍历:

题:leetcode102:

广度优先优先遍历:

代码模板(来源:labuladong算法小抄):


图的广度优先遍历是树的层次遍历的拓展

○树的层次遍历

按照数的高度从上到下,从左到右一次遍历节点

在遍历时需要用到队列

例:A-BC-DFG

伪代码

题:leetcode102:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {vector<vector<int>>res;
public:vector<vector<int>> levelOrder(TreeNode* root) {
if(!root)
return res;
queue<TreeNode*>q;
vector<int>path;
q.push(root);
while(!q.empty())
{int n=q.size();for(int i=0;i<n;i++){TreeNode *cur=q.front();q.pop();path.push_back(cur->val);if(cur->left){q.push(cur->left);}if(cur->right){q.push(cur->right);}}res.push_back(path);path.clear();}
return res;}
};

广度优先优先遍历:

从顶点s开始广度优先遍历,首先遍历与s距离为1的顶点,然后遍历与s距离为2 的顶点

通过队列实现

代码模板(来源:labuladong算法小抄):

queue<node>q;
q.push(v);
print(v);
visited[v.No]=1;
while(!q.empty())
{
node p=q.front();
q.pop();
for(遍历p的邻接点)
{如果没有访问过,置访问标记,并进队
}}

【数据结构和算法】广度优先BFS遍历图(树的层序遍历的拓展)相关推荐

  1. c++层次遍历_数据结构与算法,弄懂图的两种遍历方式

    1 引言   遍历是指从某个节点出发,按照一定的的搜索路线,依次访问对数据结构中的全部节点,且每个节点仅访问一次.  在二叉树基础中,介绍了对于树的遍历.树的遍历是指从根节点出发,按照一定的访问规则, ...

  2. 【数据结构与算法】之深入解析“二叉树的层序遍历II”的求解思路与算法示例

    一.题目要求 给你二叉树的根节点 root ,返回其节点值自底向上的层序遍历(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历). 示例 1: 输入:root = [3,9,20,null,nu ...

  3. 【数据结构与算法】之深入解析“二叉树的层序遍历”的求解思路与算法示例

    一.题目要求 给你二叉树的根节点 root ,返回其节点值的层序遍历 (即逐层地,从左到右访问所有节点). 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3

  4. 《数据结构》实验报告六:图的表示与遍历

    一.实验目的 1.掌握图的邻接矩阵和邻接表表示 2.掌握图的深度优先和广度优先搜索方法 3.理解图的应用方法 二.实验预习  说明以下概念 1.深度优先搜索遍历: 一种图的遍历方式:从图中任意一个起始 ...

  5. 数据结构与算法学习④(哈夫曼树 图 分治回溯和递归)

    数据结构与算法学习④(哈夫曼树 图 回溯和递归 数据结构与算法学习④ 1.哈夫曼树 1.1.相关概念 1.2.哈夫曼树的构建 1.3.哈夫曼编码 1.4.面试题 2.图 2.1.图的相关概念 2.2. ...

  6. 数据结构与算法(java):树-二叉树(二叉查找树(BST)、线索化二叉树、哈夫曼树、平衡二叉树【AVL】、二叉树的前中后序遍历)

    二叉树 1.定义 二叉树 就是度不超过2的树(每个结点最多只有两个子结点).如图 2.特殊二叉树 满二叉树 当二叉树的每一个层的结点树都达到最大值,则这个二叉树就是满二叉树. 完全二叉树 叶结点只能出 ...

  7. 数据结构与算法(C++)– 图(Graph)

    数据结构与算法(C++)– 图(Graph) 1.图的基础概念 定义:一个图G=(V, E)由顶点(vertex)的集V和边(edge)的集E组成. 边(edge):一对点即为一条边(v, w),其中 ...

  8. 我的软考之路(四)——数据结构与算法(2)之树与二叉树

    上篇博文主要介绍的是数据结构的线性结构,我们这篇博文介绍非线性结构-树与二叉树,我先介绍树的一些基本概念,树的遍历,再介绍二叉树相关概念和特性,以及二叉树的遍历,最后再树与二叉树的对比,总结. 树为了 ...

  9. 数据结构与算法之判断一棵树是否为搜索二叉树、判断一棵树是否是完全二叉树

    数据结构与算法之判断一棵树是否为搜索二叉树.判断一棵树是否是完全二叉树 目录 判断一棵树是否为搜索二叉树 判断一棵树是否是完全二叉树 1. 判断一棵树是否为搜索二叉树 概念:搜索树就是中序遍历的结果是 ...

最新文章

  1. 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序 3
  2. python模块与包的导入
  3. Java 编程语言中很少被人了解的特性-statement label
  4. 子弹短信新发布,支付宝即将入驻
  5. 手持光谱分光仪太贵,用什么代替?
  6. 20154322 杨钦涵 Exp2 后门原理与实践
  7. 浅析JSP动态网页开发技术
  8. 华为手机使用应用沙盒动态修改imsi参数
  9. latex 图、表 中英文标题
  10. happen-before原则
  11. SpringCloud学习笔记day01
  12. Oracle的布莱恩·格茨(Brian Goetz)展望Lambdas的未来
  13. 递归函数——上台阶问题
  14. Class类是什么?
  15. 蓝桥杯 算法提高 我们的征途是星辰大海
  16. vi编辑器终端程序的运行(hello world)
  17. POE交换机供电线序及连结方法
  18. python里面pandas对数据表的变量重新赋值,将满意,不满意的李克特量表赋值为数字
  19. C++面试知识点搜集
  20. html5 3d全景代码,HTML5教程 三维全景详解

热门文章

  1. Daily Report 2012.11.2 刘宇翔
  2. Python2.5.4移植到arm-linux
  3. Bailian4018 子串【字符串】
  4. HDU1847 Good Luck in CET-4 Everybody!【SG函数】
  5. CCF NOI1145 数字金字塔【DP】
  6. 部分和(partial sum)在算法求解中的作用
  7. Python Tricks(十六)—— list转换为str
  8. 【剑指 offer】(十九)—— 二叉树镜像
  9. 【算法】—— str2int(正序和逆序)
  10. 一行代码进行闰年的判断