您的位置:首页 > 其它

队列::数据实现

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: