/*
* 队列*/Dare.Queue = function () { this.list = new Dare.LinkedList();//链表};Dare.extend(Dare.Queue, Dare);/** 入队*/Dare.Queue.prototype.enQueue = function (data) { if (data == null) return; var linkedListNode = new Dare.LinkedListNode(); linkedListNode.data = data; this.list.appendNode(linkedListNode);};/** 出队*/Dare.Queue.prototype.deQueue = function () { if (this == null) return; var linkedListNode = new Dare.LinkedListNode(); var data = null; this.list.start();//指针指向队头 linkedListNode = this.list.nextNode(); data = this.list.getNodeData(linkedListNode); this.list.moveNode(linkedListNode); return data;};/** 队列长度*/Dare.Queue.prototype.sizeQueue = function () { if (this == null) return; return this.list.getLength();};/** 队列是否空*/Dare.Queue.prototype.isEmpty = function () { if (this == null) return; return this.list.isempty();};调用示例:
<script type="text/javascript" src="js/linkedlistnode.js"></script>
<script type="text/javascript" src="js/linkedlist.js"></script> <script type="text/javascript" src="js/queue.js"></script> <script type="text/javascript"> var queue = new Dare.Queue(); function createQueue() { for (var i = 0; i < 7; i++) { var movie = {}; movie.id = i; movie.name = 'movie_' + i; queue.enQueue(movie); //入队 } showQueue(queue); //出队 //document.write(queue.sizeQueue()); //队列长度 } function showQueue(queue) { if (queue == null) return; var html = ''; for (var i = 0; i < 7; i++) { var movie = {}; movie = queue.deQueue(); //出队 html += movie.id + "|" + movie.name + "<br>"; } document.write(html); } </script>