目录三. 栈结构1.认识栈结构2. 封装栈结构3. 应用3-1 十进制转二进制3-2 进制转换法四. 队列1. 队列是什么?2. 队列的封装3. 队列的应用-击鼓传花4. 双端队列三. 栈结构1.认识栈结构栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。特点:后进先出即Last in First Out(LIFO)。函数调用栈:2. 封装栈结构class Stack{ #items = [] push(data){ this.#items.push(data) } pop(){ return this.#items.pop() } peek(){ // return this.items[this.items.length-1] return this.#items.at(-1) } isEmpty(){ return this.#items.length===0 } size(){ return this.#items.length } clear(){ this.#items = [] } toString(){ return this.#items.join("") } }3. 应用3-1 十进制转二进制function convert(decNumber){ let remStack = new Stack() let number = decNumber let rem let string = "" while(number0){ rem = number%2 remStack.push(rem) number = Math.floor(number/2) } while(!remStack.isEmpty()){ string+=remStack.pop() } return string }3-2 进制转换法function convert(decNumber,ba