栈是一种遵从先进后出(LIFO)原则的有序集合
栈的特点是只能在某一端(只有一个口子)添加或删除数据,遵循先进后出的原则,不能随便删除修改,只能删除修改最外层的,要先拿出来再放进去
插入操作在栈中被称作入栈(push)
删除操作栈中被称为退栈(pop)
使用场景
font------------------------------back -->进行push/pop操作 只有一端能进行操作
用js模拟栈
// 栈 class Stacj { constructor(){ this.stacj = []; } push(item) { this.stacj.push(); } pop() { this.stacj.pop(); } peek() { return this.stacj[this.getSize() -1]; } getSize() { return this.stacj.length; } isEmpty() { return this.getSize() === 0; } } function isVaild(s) { const Map = { '{': '}', '[': ']', '(': ')', } const myStack = new Stacj() for(let item of s) { console.log(item, s) if(Map[item]) { myStack.push(item) } else { const last = myStack.pop() if(item !== Map[last]) return false } } return myStack.getSize() === 0; } console.log(isVaild('{','}','[',')','{',')'))
队列是一种遵从(FIFO)原则的有序集合
队列是一个线性结构,特点是在某一端添加数据,在另一端删除数据,遵循先进先出的原则
插入(insert)操作也称作入队(enqueue)
删除(delete)操作也被称为出队(dequeue)