编码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. PyQt5(4)——菜单栏(使用外部exe)

    图像化建立菜单栏: ① 双击输入名称 就可以喽 如何添加工具栏呢: 新建一个快捷工具,拖到快捷栏,出现红色的小竖线. 至此 就完成了菜单栏和快捷方式的建立. 补充: python   如何调用外部的e ...

  2. 函数新特性、内联函数、const详解

    一.函数回顾与后置返回类型 函数定义中,形参如果在函数体内用不到的话,则可以不给形参变量名字,只给其类型. 函数声明时,可以只有形参类型,没有形参名 把函数返回类型放到函数名字之前,这种写法,叫前置返 ...

  3. POJ3322Bloxorz I

    POJ3322 Bloxorz I 暴搜,next数组与处理一下(小技巧) #include <cstdio> #include <iostream> #include < ...

  4. vue培训记录

    在公司做了一次vue相关的培训,自己整理了一些大纲.供大家参考学习! ### 1. 项目构成及原理 [Vue](https://cn.vuejs.org/)###* 主流框架见解及差别 * react ...

  5. linux开机、重启和用户登陆注销

    关机&重启命令 基本介绍: shutdown –h now    立该进行关机 shudown -h 1 "hello, 1 分钟后会关机了" shutdown –r no ...

  6. Linux安装Elasticsearch-head插件

    首先需要下载以下内容: 我试验的对应版本:ES:elasticsearch-6.6.1.tar.gz  Node:node-v10.15.3-linux-x64.tar  JDK:jdk-8u201- ...

  7. 为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比

    原文:https://www.sojson.com/blog/48.html 前言: MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 场景: ...

  8. 剑指offer——面试题20:表示数值的字符串

    #include"iostream" using namespace std; bool IsInt(const char **str); bool IsUnsignInt(con ...

  9. nginx应用

    windows: 启动:start nginx 退出:nginx -s quit 检查配置是否正确:nginx -t -c ./conf/nginx.conf 查看是否在运行:tasklist /fi ...

  10. jmeter调试脚本之变量参数化

    前言 对于参数化,觉得用得最多的应该是csvread函数.csv data config以及用户自定义变量(前一篇文章已经进行了讲解)控制器这几个 案例:bugfree ,提交bug,参数bug名称和 ...