stack 数据结构
2024-09-01 19:40:32
栈定义
栈:后进先出(永远从栈顶取元素)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 }
最新文章
- $(this)与this的区别
- hibernate连接数据库的步骤
- uploadify参数
- linux或者windows下的文件拷贝
- Linq专题列表
- WordPress Checkout插件跨站脚本漏洞和任意文件上传漏洞
- 【HDOJ】1072 Nightmare
- 所有Mac用户都需要知道的9个实用终端命令行<;转>;
- 通过XSLT转换XML
- 【转】Swagger2 添加HTTP head参数
- springboot的war和jar包
- C#调用Java的WebService添加SOAPHeader验证
- .net core 的图片处理及二维码的生成及解析
- JVM-高效并发
- Python基础听课笔记
- Part-Seven
- 设计模式之模板模式 template
- 利用STM32CubeMX来生成USB_HID_Mouse工程
- OC中分类(Category)和扩展(Extension)
- easyui datagrid sort 表头 排序
热门文章
- 基于Qt实现的TCP端口数据转发服务器
- Jdbc Template初步了解
- SkyWalking APM8.1.0 搭建与项目集成使用
- Mixed Precision Training —— caffe-float16
- Zabbix5 对接 SAML 协议 SSO
- 手把手教你NLTK WordNet使用方法
- P6087 [JSOI2015]送礼物 01分数规划+单调队列+ST表
- C++最好的图形库是什么?
- 设计模式:建造者模式及在jdk中的体现,建造者模式和工厂模式区别
- Java中对象和对象引用的区别,引用、指向是什么意思