上一篇:
前端必会算法——线性数据结构的遍历

线性数据结构的递归遍历

数组是知道长度的,最好的遍历方式的循环

var arr = [1,2,3,4];
//循环遍历数组,常见,常用
function ergodic(arr){for(var i = 0;i<arr.length;i++){console.log(arr[i]);}
}
ergodic(arr);

递归遍历数组既不常见也不常用

//递归遍历数组,不常见,不常用
var arr = [1,2,3,4,5];
function ergodic(arr, i) {if (arr === null || arr.length <= i) return; //数组长度为10,i取到9console.log(arr[i]);ergodic(arr, i + 1); //继续遍历下一个}ergodic(arr, 0); //传入数组和第一个要遍历的下标

递归遍历链表是非常常见的

用递归遍历链表能够节省大量的开发时间

function Node(value) {this.value = value;this.next = null;
}var node1 = new Node(1);
var node2 = new Node(2);
var node3 = new Node(3);
var node4 = new Node(4);
var node5 = new Node(5);node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;//递归遍历必须有出口
function ergodic(root) {if (root === null) return;console.log(root.value);ergodic(root.next); //递归:自己调用自己,下一个节点作为根节点传入方法中。
}ergodic(node1);

运行结果:

下一篇:
前端必会算法——链表的逆置

前端必会算法——线性数据结构的递归遍历相关推荐

  1. 算法与数据结构之递归行为时间复杂度估算

    对递归行为时间复杂度的估算需要使用到master公式 master公式: T(N) = a*T(N/b) + O(N^d) T(N):样本量大小为N的情况下,时间复杂度 N/b:子过程的样本量 a:子 ...

  2. 算法入门 | 二叉树的递归遍历、递归创建系列(递归)

    目录 1. 二叉树的遍历规则 2. 二叉树的结构体设计 [leftchild  data  rightchild] 3. 二叉树的递归先序.中序.后序遍历 4. 利用已知字符串(二叉树的先序序列)递归 ...

  3. python算法与数据结构-二叉树的遍历

    广度优先遍历和深度优先遍历代码如下所示: # coding=utf-8class Node(object):#尽量不加3个引号的注释了容易报错def __init__(self, item):self ...

  4. 2021最新最全前端面试题(包含HTML、CSS、JavaScript、Vue、React、浏览器、算法与数据结构等)

    整理了一些前端面试题,希望对正在找前端工作的伙伴有用.本篇文章内容篇幅较大,主要针对初中级前端开发工程师. 篇幅过长,大家可以先点赞收藏以后慢慢看. 关于HTML 的title和alt属性有什么区别 ...

  5. 对于二叉树三种非递归遍历方式的理解

    利用栈实现二叉树的先序,中序,后序遍历的非递归操作 栈是一种先进后出的数据结构,其本质应是记录作用,支撑回溯(即按原路线返回):因此,基于其的二叉树遍历操作深刻的体现了其特性: 若后续的输入和其前面的 ...

  6. 【转】更简单的非递归遍历二叉树的方法

    [转]更简单的非递归遍历二叉树的方法 解决二叉树的很多问题的方案都是基于对二叉树的遍历.遍历二叉树的前序,中序,后序三大方法算是计算机科班学生必写代码了.其递归遍历是人人都能信手拈来,可是在手生时写出 ...

  7. 更简单的非递归遍历二叉树

    解决二叉树的很多问题的方案都是基于对二叉树的遍历.遍历二叉树的前序,中序,后序三大方法算是计算机科班学生必写代码了.其递归遍历是人人都能信手拈来,可是在手生时写出非递归遍历恐非易事.正因为并非易事,所 ...

  8. 更简单的非递归遍历二叉树的方法

    解决二叉树的很多问题的方案都是基于对二叉树的遍历.遍历二叉树的前序,中序,后序三大方法算是计算机科班学生必写代码了.其递归遍历是人人都能信手拈来,可是在手生时写出非递归遍历恐非易事.正因为并非易事,所 ...

  9. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

最新文章

  1. 解决.net webservice的WebClient或HttpWebRequest首次连接缓慢问题
  2. NAACL19笔记:自然语言处理应用的实用理解(多图解链接)
  3. 如何让Sublime Text编辑器支持新的ABAP关键字
  4. python爬虫运行正常最后报错_Python爬虫运行正常,最后却报错
  5. windows server 2008 系列讲座三部曲--在线讲座预告
  6. 一致性 Hash 算法原理总结
  7. Azure 部署 Asp.NET Core Web App
  8. 【一针见血】 JavaScript this
  9. 20150324 作业1(升级喽)
  10. 腾讯再回应被骗,悬赏1000瓶老干妈求线索!老干妈:腾讯从来没有催收过
  11. 机器人电量估计方法及实践
  12. USB-C 端口在您的 Mac 上无法使用如何解决?
  13. 机器学习梯度下降举例_举例说明:机器学习
  14. 特殊字符 U+200X/
  15. 企微社群营销如何提升会员活跃度?
  16. linux c语言乘法口诀表好记方法,乘法口诀表好记方法
  17. 开放式运动耳机排行榜,排行榜最高的五款骨传导耳机
  18. Ajax介绍和基本使用
  19. c语言编程一个数的质子求出来,量子力学第一章课外练习题
  20. 获取微信公众号历史文章列表页链接

热门文章

  1. 2021-2027全球与中国机器人系统集成市场现状及未来发展趋势
  2. Oracle扩展包(pipe,alert,job,scheduler)
  3. 盗墓笔记——路由器密码破解
  4. spring cloud 建一个服务消费者client-ribbon
  5. IT和非IT人士:2分钟了解什么是区块链
  6. mmc无法创建管理单元的解决方法
  7. Django 数据库 迁移migration “No changes detected“
  8. 翻译 Designing Stable Compensation Networks for Single Phase Voltage Mode Buck Regulators
  9. html文件显示controls,html5中设置或返回浏览器应当显示标准的音视频控件的属性controls...
  10. 计算机专业用移动硬盘,国产之光,可做移动硬盘又可系统盘Orico SSD