栈定义

栈:后进先出(永远从栈顶取元素)LIFO last-in-first-out
 

栈实现

class Stack {
constructor() {
this.items = []
this.size = 0 //元素个数 }
/**
* 压栈:栈顶增加一个元素,并且个数+1
*/
push(item) {
this.items[this.size++] = item }
/**
* 出栈
*/
pop() {
// 删除数组的最后一个 个数-1
let top = this.items[--this.size]
this.items.length = this.size
return top }
/**
* 查看栈顶元素
*/
peek() {
return this.items[this.size - 1] }
/**
* 判断栈是否为空
*/
isEmpty() {
return this.size === 0 } /**
* toString 方法
*/
toString() { } }

用数组模拟栈:

const  arr=[]

arr.push() 压栈   arr.pop() 出栈   arr[arr.length-1] 查看栈顶元素

栈的例子

判断回文数

/**
* 判断是否是回文数
* @param {string} str
* @returns{boolean}
*/
function isPalindRome(str) {
const arr = [] //用数组来模拟栈结构
let str1 = '' //逆序str
for (const char of str) {
arr.push(char) //入栈操作
}
while (arr.length > 0) {
str1 += arr.pop() // 出栈操作 arr改变
}
return str === str1 }

最新文章

  1. $(this)与this的区别
  2. hibernate连接数据库的步骤
  3. uploadify参数
  4. linux或者windows下的文件拷贝
  5. Linq专题列表
  6. WordPress Checkout插件跨站脚本漏洞和任意文件上传漏洞
  7. 【HDOJ】1072 Nightmare
  8. 所有Mac用户都需要知道的9个实用终端命令行<转>
  9. 通过XSLT转换XML
  10. 【转】Swagger2 添加HTTP head参数
  11. springboot的war和jar包
  12. C#调用Java的WebService添加SOAPHeader验证
  13. .net core 的图片处理及二维码的生成及解析
  14. JVM-高效并发
  15. Python基础听课笔记
  16. Part-Seven
  17. 设计模式之模板模式 template
  18. 利用STM32CubeMX来生成USB_HID_Mouse工程
  19. OC中分类(Category)和扩展(Extension)
  20. easyui datagrid sort 表头 排序

热门文章

  1. 基于Qt实现的TCP端口数据转发服务器
  2. Jdbc Template初步了解
  3. SkyWalking APM8.1.0 搭建与项目集成使用
  4. Mixed Precision Training —— caffe-float16
  5. Zabbix5 对接 SAML 协议 SSO
  6. 手把手教你NLTK WordNet使用方法
  7. P6087 [JSOI2015]送礼物 01分数规划+单调队列+ST表
  8. C++最好的图形库是什么?
  9. 设计模式:建造者模式及在jdk中的体现,建造者模式和工厂模式区别
  10. Java中对象和对象引用的区别,引用、指向是什么意思