JS里的居民们4-数组((堆)队列
编码1(队头在最右)
练习如何使用数组来实现队列,综合考虑使用数组的 push,pop,shift,unshift操作
基于代码,实现如按钮中描述的功能:
- 实现如阅读材料中,队列的相关入队、出队、获取队头、判空的操作
- 队头对应数组中最后一个元素
- 入队和出队操作后,需要在 id 为 queue-cont 的 p 标签中更新显示队列中的内容,队头在最右侧,中间用 -> 连接(练习使用数组的join方法)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>JS里的居民们4-数组((堆)队列-队头在右)</title>
</head>
<body>
<input id="queue-input" type="text">
<p id="queue-cont">队列内容:apple->pear</p>
<button id="in-btn">入队</button>
<button id="out-btn">出队</button>
<button id="font-btn">打印队头元素内容</button>
<button id="empty-btn">判断队列是否为空</button>
<script>
var queue = ["apple", "pear"];
var buttons=document.getElementsByTagName("button");
var txt=document.getElementById("queue-input");
var queuecont=document.getElementById("queue-cont");
buttons[0].addEventListener("click",function(){
queue.unshift(txt.value);
queuecont.innerHTML="队列内容:"+queue.join("->");
console.log(queue);
})
buttons[1].addEventListener("click",function(){
queue.pop();
queuecont.innerHTML="队列内容:"+queue.join("->");
console.log(queue);
})
buttons[2].addEventListener("click",function(){
var q0=queue[queue.length-1];
queuecont.innerHTML="队列内容:"+q0;
console.log(q0);
})
buttons[3].addEventListener("click",function(){
if(queue.length==0){
console.log("空");
queuecont.innerHTML="队列内容:"+"空";
}
else{
console.log("不为空");
queuecont.innerHTML="队列内容:"+"不为空";
}
})
</script>
</body>
</html>
编码2(队头在最左)
对上面练习稍作小调整:
基于代码,实现如按钮中描述的功能:
- 实现如阅读材料中,队列的相关入队、出队、获取队头、判空的操作
- 队头对应数组中第一个元素
- 入队和出队操作后,需要在 id 为 queue-cont 的 p 标签中更新显示队列中的内容,队头在最左侧,中间用 <- 连接(练习使用数组的join方法)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>JS里的居民们5-数组((堆)队列-队头在左)</title>
</head>
<body>
<input id="queue-input" type="text">
<p id="queue-cont">队列内容:apple->pear</p>
<button id="in-btn">入队</button>
<button id="out-btn">出队</button>
<button id="font-btn">打印队头元素内容</button>
<button id="empty-btn">判断队列是否为空</button>
<script>
//-> 为->
//<- 为<-
var queue = ["apple", "pear"];
var buttons=document.getElementsByTagName("button");
var txt=document.getElementById("queue-input");
var queuecont=document.getElementById("queue-cont");
buttons[0].addEventListener("click",function(){
queue.push(txt.value);
queuecont.innerHTML="队列内容:"+queue.join("<-");
console.log(queue);
})
buttons[1].addEventListener("click",function(){
queue.shift();
queuecont.innerHTML="队列内容:"+queue.join("<-");
console.log(queue);
})
buttons[2].addEventListener("click",function(){
var q0=queue[0];
queuecont.innerHTML="队列内容:"+q0;
console.log(q0);
})
buttons[3].addEventListener("click",function(){ if(queue.length==0){
console.log("空");
queuecont.innerHTML="队列内容:"+"空";
}
else{
console.log("不为空");
queuecont.innerHTML="队列内容:"+"不为空";
}
})
</script>
</body>
</html>
JS里的居民们4-数组((堆)队列的更多相关文章
- 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里的居民们5-数组(栈)
编码1(栈顶在最右) 练习如何使用数组来实现栈,综合考虑使用数组的 push,pop,shift,unshift操作 基于代码,实现如按钮中描述的功能: 实现如阅读材料中,队列的相关进栈.退栈.获取栈 ...
- 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=" ...
- 前端要革命?看我在js里写SQL
在日新月异的前端领域中,前端工程师能做的事情越来越多,自从nodejs出现后,前端越来越有革了传统后端命的趋势,本文就再补一刀,详细解读如何在js代码中执行标准的SQL语句 为什么要在js里写SQL? ...
- js中如何访问对象和数组
js中如何访问对象和数组 一.总结 一句话总结:js访问对象点和中括号,访问数组的话就是中括号 对象 . [] 数组 [] 1.js访问对象的两种方式? . [] 可以使用下面两种方式访问对象的属性和 ...
- 对于js里的闭包的理解
Ali的回答: 当function里嵌套function时,内部的function可以访问外部function里的变量. function foo(x) { var tmp = 3; ...
随机推荐
- python3之if与语句
获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍python,if条件语句,以及用法.下面附有之前的文章: 语句快介绍 语句快并非一种语句,是通过缩进形成的语句集合: 可以使用的缩进 ...
- es查询,聚合、平均值、值范围、cardinality去重查询
原文:https://blog.csdn.net/sxf_123456/article/details/78195829 普通查询 GET ana-apk/_search { "query& ...
- 2016级算法第三次上机-B.Bamboo和巧克力工厂
B Bamboo和巧克力工厂 分析 三条流水线的问题,依然是动态规划,但是涉及的切换种类比较多.比较易于拓展到n条流水线的方式是三层循环,外层是第k个机器手,里面两层代表可切换的流水线 核心dp语句: ...
- 免费观看vip/要劵的电影
免费观看vip/要劵的电影 1.在爱奇艺/腾讯视频中复制电影的连接 2.复制连接到这个网站中(http://www.qmaile.com/) 3.粘贴路径到这个网站相应的位置 4.点击go ,等待解析 ...
- Django之ContentTypes
ContentTypes是什么? ContentTypes是Django内置的一个应用,可以追踪项目中所有app和model的对应关系,并记录在ContentType表中. 每当我们创建了新的mode ...
- Docker部署Nginx应用(2)
Docker部署Nginx应用(2) 1.拉取Nginx镜像 [root@localhost ~]# docker pull nginx Using default tag: latest lates ...
- python API url 级联生成
参考了一下公司 python 达人 rpc 接口级联 api 调用 rpc.api.users.list() rpc.api.login(username='',password='') rpc['a ...
- 【javascript/css】关于鼠标事件onmousexxx和css伪类hover
在运用鼠标移入移出事件时,一般有两种做法,一种是DOM事件的"onmouseover"和"onmouseout",还有一种是css的伪类":hover ...
- Java ArrayList trimToSize()
前几天看了Java ArrayList,没有明白trimToSize()这个方法是什么意思,所以看了一下源码并且debug一下自己的一个例子,明白了其中的含义.贴在这里. ArrayList al = ...
- pow() 函数
pow() 函数用来求 x 的 y 次幂(次方),其原型为: double pow(double x, double y); #include<iostream> #include< ...