資料結構與演算法JavaScript描述——隊列

來源:互聯網
上載者:User

標籤:優先   gif   清空   辦理   不同的   text   刪除元素   先進先出   進程   

隊列是一種列表,不同的是隊列只能在隊尾插入元素,在隊首刪除元素。隊列用於儲存按順序排列的資料,先進先出,這點和棧不一樣,在棧中,最後入棧的元素反而被優先處理。可以將隊列想象成在銀行前排隊的人群,排在最前面的人第一個辦理業務,新來的人只能在後面排隊,直到輪到他們為止。 隊列是一種先進先出的資料結構。隊列被用在很多地方,比如提交作業系統執行的一系列進程、列印任務池等,一些模擬系統用隊列來類比銀行或雜貨店裡排隊的顧客。 1.對隊列的操作                                              隊列的兩種主要操作是:向隊列中插入新元素和刪除隊列中的元素。插入操作也叫做入隊,刪除操作也叫做出隊。入隊操作在隊尾插入新元素,出隊操作刪除隊頭的元素。隊列的另外一項重要操作是讀取隊頭的元素。這個操作叫做peek()。該操作返回隊頭元素,但不把它從隊列中刪除。除了讀取隊頭元素,我們還想知道隊列中儲存了多少元素,可以使用length 屬性滿足該需求;要想清空隊列中的所有元素,可以使用clear() 方法來實現。 2.用數組實現的隊列                                              JavaScript 中的數組具有其他程式設計語言中沒有的優點,數組的push() 方法可以在數組末尾加入元素,shift() 方法則可刪除數組的第一個元素。 代碼:
<script type="text/javascript">function Queue(){    this.dataStore = [];    this.enqueue = enqueue;    this.dequeue = dequeue;    this.front = front;    this.back = back;    this.toString = toString;    this.empty = empty;}/***    向隊尾添加一個元素*/function enqueue(element){    this.dataStore.push(element);}/***    刪除隊首的元素:*/function dequeue(){    this.dataStore.shift();}/***    讀取隊首的元素:*/function front(){    return this.dataStore[0];}/***    讀取隊尾的元素:*/function back(){    return this.dataStore[this.dataStore.length - 1];}/***    顯示隊列內的所有元素*/function toString(){    var retStr = "";    for (var i = 0; i < this.dataStore.length; ++i) {        retStr += this.dataStore[i] + "\n";    }    return retStr;}/***    判斷隊列是否為空白*/function empty(){    if(this.dataStore.length == 0){        return true;    }else{        return false;    }}//測試代碼var q = new Queue();q.enqueue("Meredith");    q.enqueue("Cynthia");q.enqueue("Jennifer");console.log(q.toString());q.dequeue();console.log(q.toString());console.log("Front of queue: " + q.front());console.log("Back of queue: " + q.back());</script>
View Code

列印:

 

資料結構與演算法JavaScript描述——隊列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.