js数据结构--栈
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body> <script type="text/javascript">
1.栈(LIFO):先进后出
2.创建一个类表示栈
function Stack(){
//各种属性和方法的声明
}
3.需要一种数据结构来保存栈里的元素,选择数组
var items=[];
4.为栈声明一些方法
push(elements):添加一个或几个新元素到栈顶
pop():移除栈顶的元素,并返回被移除的元素
peek():返回栈顶的元素
isEmpty():如果栈里没有任何元素返回true,否则返回false
clear():移除栈里所有的元素
size():返回栈里元素的个数
5.实现push方法
this.push=function(elements){
items.push(elements);
}
6.实现pop方法
this.pop=function(){
return items.pop();
}
7.实现peek方法
this.peek=function(){
return items[items.length-1]
}
8.实现isEmpty方法
this.isEmpty=function(){
return items.length==0;
}
9.实现size方法
this.size=function(){
return items.length;
}
10.实现clear方法
this.clear=function(){
items=[];
}
11.栈的全部代码
function Stack(){
var items=[]; this.push=function(elements){
items.push(elements);
}; this.pop=function(){
return items.pop();
}; this.peek=function(){
return items[items.length-1];
}; this.isEmpty=function(){
return items.length==0;
}; this.size=function(){
return items.length;
}; this.clear=function(){
items=[];
};
}
-----------------------------------------------
使用Stack类 1.初始化Stack类,用isEmpty方法判断栈里是否为空
var stack=new Stack();
console.log(stack.isEmpty()); //true
2.往栈里添加元素(可以添加任何类型的元素)
stack.push(5);
stack.push(8);
3.使用peek方法,返回栈顶的元素
console.log(stack.peek()); //8
4.再添加一个元素
stack.push(11);
console.log(stack.size()); //3
console.log(stack.isEmpty()); //返回false
5.再添加一个元素
stack.push(15);
stack.pop();
stack.pop();
console.log(stack.size()); //2
-----------------------------------------------
栈的应用:十进制转二进制 function devideBy2(decNumber){
var remStack=new Stack(),rem,binaryString='';
while(remStack.size()>0){
rem=Math.floor(decNumber%2);
remStack.push(rem);
decNumber=Math.floor(decNumber/2);
} while(!decNumber(isEmpty())){
binaryString+=remStack.pop().toString();
} return binaryString; } 测试:
console.log(devideBy2(10)); //1010
console.log(devideBy2(233)); //11101001
</script>
</body>
</html>
js数据结构--栈的更多相关文章
- js 数据结构-栈与队列
/*[客栈的盘子/月井里的货物,后进先出]栈顶:最先入口/出口的位置栈底:最慢最晚出栈的位置*/ function Stack() { var item = []; //推(将货物推入月井) this ...
- js数据结构之栈、队列(数据结构与拉火车游戏)
1.js实现队列的数据结构(先进先出) function Queue (array) { if(Object.prototype.toString.call(array)!="[object ...
- JS数据结构第四篇 --- 栈
一.什么是数据结构栈 在数据结构中有一个栈结构,在内存空间中也有一个栈空间,这两个”栈“是两个不同的概念.这篇我们说的是数据结构中的栈.栈是一种特殊的线性表,特殊性在哪?就是只能在栈顶进行操作,往栈顶 ...
- 数据结构与算法 --- js描述栈
js描述栈及栈的使用 栈的特性就是只能通过一端访问,这一段就是叫做栈顶.咖啡馆内的一摞盘子就是最形象的栈的例子: 根据栈的特性,就可以定义栈的一些特殊属性和方法;用js的描述栈的时候底层数据结构用的是 ...
- JS数据结构与算法——栈
JS数据结构与算法--栈 1.栈结构概念 栈(Stack)是一种先进后出(LIFO Last in First out)的线性表,先进栈的将会比后进栈的先出栈. 栈的限制是仅允许在一端进行插入和删除运 ...
- (js描述的)数据结构[栈结构](2)
(js描述的)数据结构[栈结构](2) 一.什么是栈结构 1.一种受限制的线性结构,这种结构可以基于数组来实现. 2.可以抽象成一个容器,上面的是栈顶,底下的是栈底.所以仅允许对栈顶进行操作, 二.栈 ...
- js的栈内存和堆内存
栈内存和堆内存在了解一门语言底层数据结构上,挺重要的,做了个总结 JS中的栈内存堆内存 JS的内存空间分为栈(stack).堆(heap).池(一般也会归类为栈中). 其中栈存放变量,堆存放复杂对象, ...
- JS数据结构与算法-概述
JS数据结构与算法概述 数据结构: 计算机存储, 组织数据的方式, 就像锅碗瓢盆 算法: 一系列解决问题的清晰指令, 就像食谱 两者关系: 程序 = 数据结构 + 算法 邂逅数据结构与算法 什么是数据 ...
- Flask Vue.js全栈开发
Flask Vue.js全栈开发的 最新完整代码 及使用方式 本系列的最新代码及使用方式将持续更新到: http://www.madmalls.com/blog/post/latest-code/ 1 ...
- js模拟栈
栈:先入后出,后入先出 链表:先入先出,后入后出 下面使用js实现栈 var Stack = (function(){ var items = new WeakMap(); //先入后出,后入先出 c ...
随机推荐
- 力扣 (LeetCode)算法入门——Day1
704. 二分查找 题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. ...
- 跟着 GPT-4 从0到1学习 Golang 并发机制(三)
目录 一.前言 二.开聊 2.1 关于 goroutine 泄露问题 2.2 内存模型 2.3 Race Detector 检测数据竞争 三.总结 一.前言 话接上回<跟着 GPT-4 从0到1 ...
- eclipse在主题商城下载安装黑色主题
Eclipse配置黑色主题方法: 1. 借用国外一个Elipse主题网站分享的主题配置文件来配置一个黑色的主题. 主题网址 2. 在这个网站下载自己喜欢的主题,单击主题进入下载页面,建议大家选择EPF ...
- 【环境搭建】phpstudy显示目录列表
问题来源 新版本的PHPStudy访问127.0.0.1不再像以前版本一样显示目录列表了 解决办法 打开vhosts.conf 将图中标记出来的一行Options FollowSymLinks Exe ...
- JVM运行时数据区之堆空间
JVM运行时数据区之堆空间 1.核心概述 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域.堆区在JVM 启动的时候即被创建,其空间大小也就确定了,是JVM管理的最大一块内存空间. & ...
- tensorflow.js 视频图片多目标检测
前言: Tensorflow.js 官方提供了很多常用模型库,涵盖了平时开发中大部分场景的模型.例如,前面提到的图片识别,除此之外还有人体姿态识别,目标物体识别,语音文字等识别.其中一些可能是 Pyt ...
- 关于三维模型OSGB格式轻量化在数据存储的重要性浅析
关于三维模型OSGB格式轻量化在数据存储的重要性浅析 三维模型的OSGB格式是一种常见的数据格式,用于存储和传输地理信息系统(GIS)中的三维地图数据.随着技术的不断发展,三维模型的应用越来越广泛,包 ...
- SQL简单使用指南
SQL简单使用指南 SQL(结构化查询语言)是一种用于管理和操作关系型数据库的标准化语言. 数据库概述 数据库是用于存储和组织数据的结构.它由表(表格)组成,每个表都包含多个列和行.以下是SQL中最常 ...
- word2010中统一调整表格格式
word中统一调整表格格式基本思路是: 1.选中所有的表格. 2.再对表格格式调整. 选中所有表格需要用到宏,操作很简单,具体操作如下: (1)工具栏"视图"下右下角&quo ...
- mysql关键字匹配度模糊查询
有时候项目中需要进行模糊查询,但是要对查询出来的结果进行匹配度排序,比如搜索关键字是"北",需要把数据库中第一个字是北的排在前面,此时就可以用mysql的INSTR函数. INST ...