这是简单的队列的操作,
实现的功能:
1,往队列添加元素(enqueue):队尾添加数据。
2,出队列(outqueue):队头删除数据。
3,队列中的数据(print)
4,队列的指定index值(indexData):查询指定下标的队列中的值。
5,查看队列是否为空(empty):返回值 false,true。
6,查看队列的长度(sizes):
js代码:
function Queue(){
var items=[];
// 入栈
this.enqueue=function (element){
items.push(element);
}
// 出栈
this.outqueue=function () {
return items.shift();
}
// 打印队列
this.print =function (){
return items.toString()
}
// 队列的值
this.indexData=function(index){
return items[index]
}
// 队列是否为空
this.empty=function(){
return items.length==0
}
// 队列的长度
this.sizes=function(){
return items.length
}
}
// 初始化队列
var queue=new Queue ();
queue.enqueue('Hello');
queue.enqueue('Word');
queue.enqueue('!');
// 队列列表
function queuePrint (){
var dataPrint=queue.print();
document.getElementById('domo').innerHTML=dataPrint;
}
//添加队列
function addQueue(){
var data=document.getElementById('input').value;
queue.enqueue(data)
}
//出栈
function queueOut(){
var dataOut=queue.outqueue();
document.getElementById('out').innerHTML=dataOut;
}
//队列的index值
function queueSelect(){
var data=document.getElementById('select').value;
var dataSelect=queue.indexData(data);
document.getElementById('selectTag').innerHTML=dataSelect;
}
// 判断队列是否为空
function queueIsEmpty(){
var isEmpty=queue.empty();
var empty=isEmpty===true?'空队列':'非空队列';
document.getElementById('empty').innerHTML=empty;
}
// 队列长度
function queueSize(){
var data=queue.sizes();
document.getElementById('length').innerHTML=data;
}
循环队列的步骤:
1,在forQueue(数据列表,循环的次数)传入两个参数。
2,在forQueue(nameList,num){
1,声明queue=基本队列。
2,使用for循环将nameList的数据添加到队列中。
3,使用whlie判断队列的数据大于1个,就会进行循环,循环的次数就是传入的num,
在循环中,queue.addQueue(queue.outQueue()),将出列的值在入列。
4,最终返回唯一一个队列的值
}
js代码:
//队列
function Queue(){
var items=[];
this. addQueue=function(element){
return items.push(element)
}
this.outQueue=function(){
return items.shift()
}
this.printQueue=function(){
return items.toString();
}
this.size=function(){
return items.length ;
}
}
//
function forQueue(nameList,num){
//初始化队列和淘汰者
losser=[];
var queue=new Queue();
// 将数据导入队列中
for(var i=0; i queue.addQueue(nameList[i]) } var outQueueData=''; // 当队列还存在值时,在循环中将出列的值在进行入列操作,循环结束将出列的淘汰者存在looser的数组中 while(queue.size()>1){ for(var i=0;i queue.addQueue(queue.outQueue()) } outQueueData=queue.outQueue(); console.log('失败者:'+outQueueData) losser.push(outQueueData) } //返回最终队列的值 return queue.outQueue(); } var nameList=['one','two','three','four','fine','six','server']; var losser=[]; var num =0; //list队列列表 function list(){ var queueList=nameList.toString(); document.getElementById('list').innerHTML=queueList; } //随机改变队列循环的次数 function changeNum(){ num=Math.floor(Math.random()*30); console.log("m:"+num); document.getElementById('num').innerHTML=num; } //开始 function begin(){ var winner=forQueue(nameList,num); console.log("m:"+num); console.log('胜利者:'+winner); document.getElementById('winner').innerHTML=winner; } //looser列表 function looserPrint(){ var data=losser.toString(); document.getElementById('looser').innerHTML=data; } //添加n的数据 function addList(){ var data=document.getElementById('inputData').value; nameList.push(data); var queueList=nameList.toString(); document.getElementById('list').innerHTML=queueList; } -------------------------------------------------------------------------------------------------------------------------------------------------------------------如遇到问题:+WX:WAZJ-0508,及时联系---------------------------------------------------------------------------------------------------------------------------------------------------事例的源码:点击这里