JavaScript数据结构之栈和队列
栈(堆栈)
栈是一种先进后出的存储方式,也就是说最后添加的项最先被移出;它是一种运算受限的线性表,只能在表头/栈顶进行插入和删除操作。
栈有栈底和栈顶。
向一个栈插入新元素叫入栈(进栈),就是把新元素放入到栈顶的上面,成为新的栈顶;
从一个栈删除元素叫出栈,就是把栈顶的元素删除掉,相邻的成为新栈顶;
也就是说栈里面的元素的插入和删除操作,只在栈顶进行;
javascript也为数组提供了方法可以实现类似入栈出栈功能, 入栈push()、 出栈pop();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var arr=[];
for(var i=1;i<5;i++){
var temp=i;
arr.push(temp);
console.log("数组arr:"+arr);
}
for(var i=0;i<4;i++){
console.log("出栈:"+arr.pop());
}
</script>
</body>
</html>
队列
队列是一种先进先出的数据结构。 队列在列表的末端增加项,在首端移除项。
它允许在表的首端(队列头)进行删除操作,在表的末端(队列尾)进行插入操作;
JavaScript为数组提供了方法可以实现队列功能, 入队unshift()、 出队pop();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var arr=[];
for(var i=1;i<5;i++){
var temp=i;
arr.unshift(temp);
console.log("数组arr:"+arr);
}
for(var i=0;i<4;i++){
console.log("出栈:"+arr.pop());
}
</script>
</body>
</html>