编码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-&gt;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("-&gt");
}
popbtn.onclick = function () {
stack.shift();
stackcont.innerHTML = "栈内容:" + stack.join("-&gt");
}
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-&gt;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("&lt-");
}
popbtn.onclick = function () {
stack.pop();
stackcont.innerHTML = "栈内容:" + stack.join("&lt-");
}
fontbtn.onclick = function () {
stackcont.innerHTML = "栈内容:" + stack[0];
}
emptybtn.onclick = function () {
if (stack.length == 0) {
stackcont.innerHTML = "栈内容:空";
} else {
stackcont.innerHTML = "栈内容:不为空";
}
}
</script>
</body> </html>

JS里的居民们5-数组(栈)的更多相关文章

  1. JS里的居民们7-对象和数组转换

    编码 学习通用的数据用不同的数据结构进行存储,以及相互的转换 对象转为数组: var scoreObject = { "Tony": { "Math": 95, ...

  2. JS里的居民们6-数组排序

    编码 var arr = [43, 54, 4, -4, 84, 100, 58, 27, 140]; 将上面数组分别按从大到小以及从小到大进行排序后在console中输出 var arr = ['a ...

  3. JS里的居民们4-数组((堆)队列

    编码1(队头在最右) 练习如何使用数组来实现队列,综合考虑使用数组的 push,pop,shift,unshift操作 基于代码,实现如按钮中描述的功能: 实现如阅读材料中,队列的相关入队.出队.获取 ...

  4. 用JS描述的数据结构及算法表示——栈和队列(基础版)

    前言:找了上课时数据结构的教程来看,但是用的语言是c++,所以具体实现在网上搜大神的博客来看,我看到的大神们的博客都写得特别好,不止讲了最基本的思想和算法实现,更多的是侧重于实例运用,一边看一边在心里 ...

  5. Javascript中双等号(==)隐性转换机制 JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密

    Javascript中双等号(==)隐性转换机制   在Javascript中判断相等关系有双等号(==)和三等号(===)两种.其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否 ...

  6. 理解 Node.js 里的 process.nextTick()

    有很多人对Node.js里process.nextTick()的用法感到不理解,下面我们就来看一下process.nextTick()到底是什么,该如何使用. Node.js是单线程的,除了系统IO之 ...

  7. js里function的apply vs. bind vs. call

    js里除了直接调用obj.func()之外,还提供了另外3种调用方式:apply.bind.call,都在function的原型里.这3种方法的异同在stackoverflow的这个答案里说的最清楚, ...

  8. JS~JS里的数据类型

    JS里的数据类型,它虽然是个弱类型的语言,但它也有自己的规定的,它不会向其它语言那么,使用int来声明一个整形变量,而是使用 var,如果你是一个C#的开发者,你就会知道,原来C#现在也在和JS学,开 ...

  9. Augular JS里的各种ng

    Augular JS里的各种ng- 正文: 1.ng-disabled="一种状态:该状态下不可用"例如: %button.btn.btn-2(ng-disabled=" ...

随机推荐

  1. H5新手教程,小白来看看。

    H5教程(一) 相信点进来看这篇文章的应该都是刚刚接触H5的新手,那么你真的是找到了一篇合适的文章. 1.学习前准备 既然想学习好H5,只是这样看是不够的,还需要动手练习,以及及时复习,所以我推荐几款 ...

  2. CH2601 电路维修(双端队列bfs)建图恶心

    CH2601 电路维修 双端队列bfs,其实就是因为只有0和1所以可以直接2维护队列单调性(和优先队列一个道理) 建图的过程需要仔细斟酌(想一想id为什么这么写) 还有,空间要开够(很玄学),我一开始 ...

  3. esp32编程第一例 hollow word

    #include<stdio.h>#include"freertos/FreeRtos.h"#include"freertos/task.h"#in ...

  4. C#-函数的传值与传址

    传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有int型,浮点型,bool型,char字符型,结构体等等. 传址就是将地址传到所调用的函数里面操作,实参的值也会跟着变化,传 ...

  5. 51 Nod 1042 数位dp

    1042 数字0-9的数量 1 秒 131,072 KB 10 分 2 级题   给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19,1出现11次(10,11,12,13,14,1 ...

  6. HTML5 Canvas核心技术 图形、动画与游戏开发学习总结

    save 和 restore 函数的应用 保存canvas和恢复canvas clip函数的应用 文字的绘制 背景图片的绘制 离屏canvas 基于时间的运动

  7. scrapyd 参考(https://www.jianshu.com/p/2a189127901a)

    一    Scrapyd简介 Scrapyd 是一个用来部署和运行 Scrapy 项目的应用,由 Scrapy 的开发者开发.其可以通过一个简单的 Json API 来部署(上传)或者控制你的项目. ...

  8. docker 查看容器信息---格式化

    镜像,ID,端口号,状态 docker ps -a --format "table {{.Image}}\t{{.ID}}\t{{.Ports}}\t{{.Status}}" 列出 ...

  9. Salesforce LINKS

    Salesforce的二次开发平台的多租户架构 http://blog.talkingdata.net/?p=4807 Salesforce 简介 https://www.cnblogs.com/ch ...

  10. (转)Linux服务器SNMP常用OID

    原文:https://www.haiyun.me/archives/linux-snmp-oid.html 收集整理一些Linux下snmp常用的OID,用做服务器监控很不错.服务器负载: 1 2 3 ...