递归和迭代在图遍历中的对比-栈结构

  • 递归和迭代在图遍历中的对比-栈结构
    • 递归和迭代
    • 总结一下

递归和迭代在图遍历中的对比-栈结构

做了两道图遍历相关的题,分别是Leetcode230. Kth Smallest Element in a BST,Leetcode785. Is Graph Bipartite?,
这两道题都可以用递归和迭代两种方法来处理,然后有了一些细究下去的想法
为防止以后找不到,把思考的结论单独开一篇放在这里
:由于只是从两道题中得来的结论,可能以偏概全,如果有错误或缺漏,请评论指出

递归和迭代

递归和迭代好像总是如影相随,细想一想:
递归的实现,也是借助于栈,只不过在程序中不可见,栈中保存的是当前节点的所有父节点,是访问到当前节点的路径,记忆的是来路,同级的兄弟节点是没有保存到栈中的
迭代中的栈程序中可见,直接拿出来用,用来保存当前节点的所有子节点,然后在访问的时候,由于当前节点已经弹出,所以,记忆的是去路

总结一下

栈的级别 栈在程序中是否可见 栈中保存的记忆 是否保存同级节点
递归 编译器 父节点,来路
迭代 用户程序 子节点,去路

递归和迭代在图遍历中的对比-栈结构相关推荐

  1. 二叉树遍历_递归和迭代(动图)

    二叉树遍历_递归和迭代 1. 定义二叉树 2. 二叉树递归遍历 3. 二叉树迭代遍历 3.1 前序遍历 3.2 中序遍历 3.3 后序遍历 3.4 层序遍历 1. 定义二叉树   首先定义一个简单的二 ...

  2. 非递归实现二叉树的前序、中序、后序遍历

    目录 非递归实现二叉树的前序遍历 非递归实现二叉树的中序遍历 非递归实现二叉树的后序遍历 根据二叉树的前序和中序遍历结果还原二叉树 根据二叉树的中序和后序遍历结果还原二叉树 非递归遍历需要借助栈. 非 ...

  3. 综述 | 生成对抗网络(GAN)在图网络中的应用

    导语: 生成对抗网络(Generative Adversarial Network,简称GAN)是非监督式学习的一种方法,通过让两个神经网络相互博弈的方式进行学习.自2014年GAN网络提出以来,其在 ...

  4. List遍历中删除元素

    List遍历主要有索引下标遍历.for循环遍历和Iterator迭代遍历,索引下标和for循环在遍历中删除元素都存在问题,Iterator迭代可以实现遍历中删除元素. 索引下标遍历 List<I ...

  5. JavaScript(JS)前序遍历,中序遍历,后序遍历,层序遍历,图文详解两种(递归与迭代)实现的方式

    1.二叉树的前序遍历 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树. 在遍历左.右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树. 若二叉树为空则结束返回,否则: (1)访问根结点. ...

  6. LeetCode--144,94,145,102 二叉树的前序、中序、后序、层序遍历(递归,迭代,栈,队列)

    二叉树的前序.中序.后序.层序遍历(递归,迭代,栈,队列) 1. 二叉树的前序遍历 1.1 题目描述 1.2 题目分析 1.3 Python实现 2. 二叉树的中序遍历 2.1 题目描述 2.2 题目 ...

  7. 二叉树的前序,中序,后序的递归、迭代实现

    二叉树的前序遍历 递归实现 递归实现没什么好说的.个人感觉将函数功能看成一个整体,不要去想栈中怎么实现的.毕竟自己的脑袋不是电脑,绕着绕着就蒙了. void preordered_traversal_ ...

  8. [Leedcode][JAVA][第105题][从前序与中序遍历序列构造二叉树][栈][递归][二叉树]

    [问题描述][中等] 根据一棵树的前序遍历与中序遍历构造二叉树.注意: 你可以假设树中没有重复的元素.例如,给出前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = ...

  9. 计算机科学中的递归算法是把问题,从计算思维的视角辨析算法中的递归与迭代...

    周世杰 算法思维是计算思维的一个方面,而在计算机科学中,基于递归和迭代的思维方式在算法和程序设计中广泛应用,是算法思维的重要构成部分.因此,信息技术学科教师在基础课教学中辨析递归与迭代算法,将其作为发 ...

最新文章

  1. Go 语言编程 — 程序运行环境
  2. Android逆向之旅---爆破一款资讯类应用「最右」防抓包策略原理分析
  3. 应用adb发布apk到android avd模拟器
  4. Zabbix中文乱码问题
  5. LeetCode题库第867题 转置矩阵
  6. 开发asp.net2.0手机用网站 点滴[xgluxv]
  7. 深度学习(3)手写数字识别问题
  8. 关于 OutOfMemoryError 的总结与解决方法
  9. Linux磁盘阵列技术详解(三)--raid 5和raid 10的创建 推荐
  10. xml2 交叉编译移植
  11. 技校计算机程序设计,如何编写技工学校计算机程序设计课程校本教材
  12. 半导体物理学复习大纲
  13. c#html转换pdf,[C#] 网页Html转PDF档(一行程式码解决)
  14. 程序员如何阅读英文文档
  15. java options设置_JAVA_TOOL_OPTIONS和_JAVA_OPTIONS
  16. 安卓效率微商_微商猎手app下载-微商猎手下载 2.6 安卓版 - 河东软件园
  17. Unity景深效果解析
  18. 移动开发技术第一次大作业
  19. 基于ndis protocol driver 后门 分析
  20. MySQL数据库---数据库基础

热门文章

  1. 美国市场上的那些指数
  2. BAE Systems的空天部门计划采用Simufact 增材制造软件用于金属增材制造-20190328--【金属前沿001】
  3. 联表查询JoinON详解(自连接)
  4. Altium Designer点击没有反应
  5. 云边端与边缘计算技术
  6. 20-输出前m大的数
  7. linux入门(五)查找命令总结,含五星级命令find详解
  8. ubuntu进入单用户模式
  9. Mysql_06_第六章
  10. Linux操作系统管理