JS里的居民们5-数组(栈)
编码1(栈顶在最右)
练习如何使用数组来实现栈,综合考虑使用数组的 push,pop,shift,unshift操作
基于代码,实现如按钮中描述的功能:
- 实现如阅读材料中,队列的相关进栈、退栈、获取栈顶、判空的操作
- 栈顶对应数组中最后一个元素
- 进栈和退栈操作后,需要在 id 为 stack-cont 的 p 标签中更新显示栈中的内容,栈顶在最右侧,中间用 -> 连接(练习使用数组的join方法)
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>JS里的居民们6-数组(栈-栈顶在右)</title>
</head> <body>
<input id="stack-input" type="text">
<p id="stack-cont">栈内容:apple->pear</p>
<button id="push-btn">进栈</button>
<button id="pop-btn">退栈</button>
<button id="font-btn">打印栈顶元素内容</button>
<button id="empty-btn">判断栈是否为空</button> <script>
var stack = ["apple", "pear"];
var txt = document.getElementById("stack-input");
var stackcont = document.getElementById("stack-cont");
var pushbtn = document.getElementById("push-btn");
var popbtn = document.getElementById("pop-btn");
var fontbtn = document.getElementById("font-btn");
var emptybtn = document.getElementById("empty-btn"); pushbtn.onclick = function () {
stack.unshift(txt.value);
stackcont.innerHTML = "栈内容:" + stack.join("->");
}
popbtn.onclick = function () {
stack.shift();
stackcont.innerHTML = "栈内容:" + stack.join("->");
}
fontbtn.onclick = function () {
stackcont.innerHTML = "栈内容:" + stack[stack.length - 1];
}
emptybtn.onclick = function () {
if (stack.length == 0) {
stackcont.innerHTML = "栈内容:空";
} else {
stackcont.innerHTML = "栈内容:不为空";
}
}
</script>
</body> </html>
编码2(栈顶在最左)
对上面练习进行小调整
基于代码,实现如按钮中描述的功能:
- 实现如阅读材料中,队列的相关进栈、退栈、获取栈顶、判空的操作
- 栈顶对应数组中第一个元素
- 进栈和退栈操作后,需要在 id 为 stack-cont 的 p 标签中更新显示栈中的内容,栈顶在最左侧,中间用 -< 连接(练习使用数组的join方法)
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>JS里的居民们7-数组(栈-栈顶在左)</title>
</head> <body>
<input id="stack-input" type="text">
<p id="stack-cont">栈内容:apple->pear</p>
<button id="push-btn">进栈</button>
<button id="pop-btn">退栈</button>
<button id="font-btn">打印栈顶元素内容</button>
<button id="empty-btn">判断栈是否为空</button> <script>
var stack = ["apple", "pear"];
var txt = document.getElementById("stack-input");
var stackcont = document.getElementById("stack-cont");
var pushbtn = document.getElementById("push-btn");
var popbtn = document.getElementById("pop-btn");
var fontbtn = document.getElementById("font-btn");
var emptybtn = document.getElementById("empty-btn"); pushbtn.onclick = function () {
stack.push(txt.value);
stackcont.innerHTML = "栈内容:" + stack.join("<-");
}
popbtn.onclick = function () {
stack.pop();
stackcont.innerHTML = "栈内容:" + stack.join("<-");
}
fontbtn.onclick = function () {
stackcont.innerHTML = "栈内容:" + stack[0];
}
emptybtn.onclick = function () {
if (stack.length == 0) {
stackcont.innerHTML = "栈内容:空";
} else {
stackcont.innerHTML = "栈内容:不为空";
}
}
</script>
</body> </html>
JS里的居民们5-数组(栈)的更多相关文章
- JS里的居民们7-对象和数组转换
编码 学习通用的数据用不同的数据结构进行存储,以及相互的转换 对象转为数组: var scoreObject = { "Tony": { "Math": 95, ...
- JS里的居民们6-数组排序
编码 var arr = [43, 54, 4, -4, 84, 100, 58, 27, 140]; 将上面数组分别按从大到小以及从小到大进行排序后在console中输出 var arr = ['a ...
- JS里的居民们4-数组((堆)队列
编码1(队头在最右) 练习如何使用数组来实现队列,综合考虑使用数组的 push,pop,shift,unshift操作 基于代码,实现如按钮中描述的功能: 实现如阅读材料中,队列的相关入队.出队.获取 ...
- 用JS描述的数据结构及算法表示——栈和队列(基础版)
前言:找了上课时数据结构的教程来看,但是用的语言是c++,所以具体实现在网上搜大神的博客来看,我看到的大神们的博客都写得特别好,不止讲了最基本的思想和算法实现,更多的是侧重于实例运用,一边看一边在心里 ...
- Javascript中双等号(==)隐性转换机制 JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密
Javascript中双等号(==)隐性转换机制 在Javascript中判断相等关系有双等号(==)和三等号(===)两种.其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否 ...
- 理解 Node.js 里的 process.nextTick()
有很多人对Node.js里process.nextTick()的用法感到不理解,下面我们就来看一下process.nextTick()到底是什么,该如何使用. Node.js是单线程的,除了系统IO之 ...
- js里function的apply vs. bind vs. call
js里除了直接调用obj.func()之外,还提供了另外3种调用方式:apply.bind.call,都在function的原型里.这3种方法的异同在stackoverflow的这个答案里说的最清楚, ...
- JS~JS里的数据类型
JS里的数据类型,它虽然是个弱类型的语言,但它也有自己的规定的,它不会向其它语言那么,使用int来声明一个整形变量,而是使用 var,如果你是一个C#的开发者,你就会知道,原来C#现在也在和JS学,开 ...
- Augular JS里的各种ng
Augular JS里的各种ng- 正文: 1.ng-disabled="一种状态:该状态下不可用"例如: %button.btn.btn-2(ng-disabled=" ...
随机推荐
- 「案例」让房东在 Airbnb 上展示他们的热情好客
如何才能让房东准确的描述自己的房源,如何才能让房东充分的展示自己的房源.Airbnb 在这次更新里尝试去解决了这两个问题,让我们跟随作者的文笔去了解一下整个项目的经过. 关于本文 原文作者:Cecil ...
- 提高 iOS App 通知功能启用率的三个策略
我们都知道推送通知在 App 运营中的作用巨大.但是,很多用户却并不买帐,App 第一次启动提示是否「启用推送通知」时,他们直接选择了「否」. 是的,最近我本人就转变成了这样的人 - 认真地评估每个应 ...
- 二叉搜索树 思想 JAVA实现
二叉搜索树:一棵二叉搜索树是以一棵二叉树来组织的,这样一棵树可以使用链表的数据结构来表示(也可以采用数组来实现).除了key和可能带有的其他数据外,每个节点还包含Left,Right,Parent,它 ...
- 爬虫防封IP
当抓取数据逐渐增大时,服务器的负荷会加大,会直接封掉来访IP: 采取措施: 1.创建请求头部信息: headers = {'User-Agent': 'Mozilla/5.0 (Windows NT ...
- oracle for update for update nowait
对数据进行查询操作后,或提示ORA-00054错误,这时选定行的资源被占用,资源正忙.其他程序或者用户在占用着此行数据或者此表. 直接查询. select * from A1 t ; 此时取到的数据 ...
- 牛客 Wannafly挑战赛27 D 绿魔法师
传送门 \(\color{green}{solution}\) 分析下,在\(1e5+1\)内,一个数的约数个数最多为\(2^{6}\)个,所以我们可以考虑枚举约数 复杂度\(O(N^{2^{6 \t ...
- CDH6安装文档
1.准备工作 1.1 环境 centos7.jdk8.mysql5.7.python2.7.CDH6 1.2文件下载 1.2.1 cloudmanger地址 https://archive.cloud ...
- 手机端页面调试工具-vconsole使用
用的是VUE-CLI3第一步.安装vconsole npm install vconsole 第二步.创建js文件并写入内容 import Vconsole from 'vconsole' let v ...
- JAVA统计一定范围内的质数个数
public class TestNumber{ public static void main(String[] args){ System.out.println(roundPrimeCount( ...
- Oracle 维护数据的完整性 一 约束
简介:约束用于确保数据库满足特定的商业规则.在Oracle中,约束包括以下几种: 1.not null 非空约束 该劣质不能为null 2.unique 唯一约束 ...