队列::数据实现
2008-02-21 19:13
197 查看
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>Untitled Document</title>
</head>
<body>
<p>用数组表示循环队列,即数组索引的最大值的后一个元素是指向位置等于一的元素。</p>
<p>由于javascript中的数组是动态变化的,所以不会出现越界的现象。直接跟队列的算法一样。</p>
<script type="text/javascript">
function queue(){
this.item=[];
this.front=-1;
this.rear=-1;
}
function add_queue(que,node){
que.item[++que.rear]=node;
}
function delete_queue(que){
if(que.front==que.rear){
document.writeln("<br />队列为空,不能删除");
return false;
}
que.item[que.front++]=null;
}
function reindex_queue(que){
var i=0;
for(;i<que.rear-que.front;i++){
que.item[i]=que.item[i+que.front+1];
}
while(que[i]){
que[i++]=null;
}
que.rear=que.rear-que.front-1;
que.front=-1;
}
function show_queue(que){
var s=que.item;
for(var i=que.front+1;i<=que.rear;i++){
document.writeln("<br />"+que.item[i]);
}
}
var q=new queue();
add_queue(q,"小");
add_queue(q,"中");
add_queue(q,"大");
reindex_queue(q);
show_queue(q);
delete_queue(q);
delete_queue(q);
reindex_queue(q);
show_queue(q);
delete_queue(q);
delete_queue(q);
</script>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>Untitled Document</title>
</head>
<body>
<p>用数组表示循环队列,即数组索引的最大值的后一个元素是指向位置等于一的元素。</p>
<p>由于javascript中的数组是动态变化的,所以不会出现越界的现象。直接跟队列的算法一样。</p>
<script type="text/javascript">
function queue(){
this.item=[];
this.front=-1;
this.rear=-1;
}
function add_queue(que,node){
que.item[++que.rear]=node;
}
function delete_queue(que){
if(que.front==que.rear){
document.writeln("<br />队列为空,不能删除");
return false;
}
que.item[que.front++]=null;
}
function reindex_queue(que){
var i=0;
for(;i<que.rear-que.front;i++){
que.item[i]=que.item[i+que.front+1];
}
while(que[i]){
que[i++]=null;
}
que.rear=que.rear-que.front-1;
que.front=-1;
}
function show_queue(que){
var s=que.item;
for(var i=que.front+1;i<=que.rear;i++){
document.writeln("<br />"+que.item[i]);
}
}
var q=new queue();
add_queue(q,"小");
add_queue(q,"中");
add_queue(q,"大");
reindex_queue(q);
show_queue(q);
delete_queue(q);
delete_queue(q);
reindex_queue(q);
show_queue(q);
delete_queue(q);
delete_queue(q);
</script>
</body>
</html>
相关文章推荐
- java 大量数据提交时,使用队列定时提交思路的程序实现
- 数据结构之环形队列实现(1)
- [Python面试知识]数据结构之栈和队列实现
- 数据结构之C/C++实现循环队列
- 数据结构(C实现)------- 顺序队列(循环队列之少用一个存储空间实现) .
- 六、数据结构基础之链队列C语言实现
- 数据结构基础——循环队列的C++实现
- 经典数据结构之队列的链表实现方法
- 数据结构之队列基本实现
- php实现redis消息队列将数据保存到mysql
- 数据结构之循环队列c语言实现
- 数据结构7:队列的简单实现
- 数据机构(10)--顺序循环队列的实现及相关操作
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- Linked List实现队列的数据存储结构
- 数据结构之队列――链式存储结构(php代码实现)
- 数据结构——使用双端链表实现队列(java实现)
- 看数据结构写代码(15)链式队列的实现(总结篇)
- PHP实现队列(Queue)数据结构
- (4) 数据结构与算法 ---- 线性表 及Java实现 顺序表、链表、栈、队列