编码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. leetcode-475-Heaters

    题目描述: Winter is coming! Your first job during the contest is to design a standard heater with fixed ...

  2. web 应用的部署

    一.项目管理 : zentao(国产开源),其他 project.redmine.trac 二.自动部署: jenkins:自动化配置 docker:容器,类似虚拟机,不过只是本机系统的内核的一个虚拟 ...

  3. NavigationItem的Title不居中,BackButton修改它得title

    国外得一个链接: http://situee.blogspot.com/2014/10/ios-set-navigation-bar-back-button-title.html 最近迷上了简洁风,在 ...

  4. ORACLE的WITH语句的一个疑惑

    使用WITH语句,更新表数据,不行: WITH VN AS ( SELECT T.ID, T.NODE_ID, N.NODE_TYPE, N.NODE_NAME, T.NODE_LEVEL, T.RN ...

  5. Q481 神奇字符串

    神奇的字符串 S 只包含 '1' 和 '2',并遵守以下规则: 字符串 S 是神奇的,因为串联字符 '1' 和 '2' 的连续出现次数会生成字符串 S 本身. 字符串 S 的前几个元素如下:S = & ...

  6. Jedis timeout

    处理Jedis timeout 异常 Jedis rClient = new Jedis("localhost"); 解决步骤 关闭linux防火墙 systemctl stop ...

  7. js 常用基本知识

    Object.isObject = function(obj){ return obj != null && typeof obj === 'object' && Ar ...

  8. chromedriver for mac

  9. java程序没有运行选项

    1.检查module是否正确 确保src为资源文件 2.检查是否有main函数

  10. mysql安装启动 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    首次安装mysql 启动 mysql -uroot 以下错误: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using ...