本文主要是介绍栈,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
栈
//JS中没有栈,但可以用数组array进行实现
const stack = [];
stack.push(1);
stack.push(2);
const item1 = stack.pop();
const item2 = stack.pop();
//后进先出场景
//十进制转二进制
//字符串括号是否有效 1.js
//函数调用堆栈 2.js
有效地括号
//leetcode 20 有效地括号
// 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
// 有效字符串需满足:
// 左括号必须用相同类型的右括号闭合。
// 左括号必须以正确的顺序闭合。
// 链接:https://leetcode-cn.com/problems/valid-parentheses
var isValid = function(s) {
const n = s.length;
if (n % 2 === 1) {
return false;
}
const pairs = new Map([
[')', '('],
[']', '['],
['}', '{']
]);
const stk = [];
for (let ch of s){
if (pairs.has(ch)) {
if (!stk.length || stk[stk.length - 1] !== pairs.get(ch)) {
return false;
}
stk.pop();
}
else {
stk.push(ch);
}
};
return !stk.length;
};
// var isValid = function(s){
// if(s.length % 2 === 1){return false;}
// const stack = [];
// for(let i = 0; i < s.length; i+=1){
// const c = s[i];
// if(c === '('||c === '{'|| c === '['){
// stack.push(c);
// }else{
// const t = stack[stack.length -1];
// if(
// (t === '('&& c === ')')||
// (t === '{'&& c === '}')||
// (t === '['&& c === ']')
// ){
// stack.pop();
// }else{
// return false;
// }
// }
// }
// return stack.length === 0;
// }
函数调用堆栈
//函数调用堆栈
const func1 = () =>{
func2()
};
const func2 = () =>{
func3()
};
const func3 = () =>{};
func1();
二叉树的前序遍历
//二叉树的前序遍历
//leetcode 144 二叉树的前序遍历
这篇关于栈的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!