上一篇:
前端必会算法——线性数据结构之链表
线性数数据结构的遍历
遍历:将一个集合中的每一个元素进行获取并查看
使用循环的方法遍历数组
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
// 注意:平时写代码可以这么写,考算法题的时候这样写,一分都不给。
// 算法题中不允许任何地方出现报错(不管性能好与坏)。
function ergodic_one(arr) {
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
}
// 算法严谨性要求:必须要有严谨性的判断
// 正确写法:
function ergodic_two(arr) {
if (arr === null) return; // 严谨性判断必须要有,这是算法的要素。
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
}
链表的遍历
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) {
var temp = root; //用于寄存
//链表的长度不知道。不知道循环次数,使用while循环
while (true) {
if (temp !== null) {
console.log(temp.value);
} else {
break;
}
temp = temp.next;
}
}
ergodic(node1); //传入一个根节点
遍历结果:
下一篇:
前端必会算法——线性数据结构的递归遍历