佇列實現先進先出

2021-10-03 13:14:54 字數 1133 閱讀 8905

(1) 入隊,如例:q.push(x); 將x 接到佇列的末端。

(2) 出隊,如例:q.pop(); 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。

(3) 訪問隊首元素,如例:q.front(),即最早被壓入佇列的元素。

(4) 訪問隊尾元素,如例:q.back(),即最後被壓入佇列的元素。

(5) 判斷佇列空,如例:q.empty(),當佇列空時,返回true。

(6) 訪問佇列中的元素個數,如例:q.size()

4.1.2目的意義:熟悉queue佇列各種基本操作,加強對佇列的認識。

4.1.3達到目標:查閱資料,仿寫佇列類queue,實現基本操作:push()、pop()、front()、back()、empty()、size()。

4.2、資料結構和演算法說明

4.2.1總體設計與分析和設計:利用已有的queue庫中函式,一一呼叫,同時一一實現其功能。每個功能標註好相關資訊,讓人一目了然。

4.2.2採用的資料結構:用queue(佇列)容器實現先進先出的資料結構(fifo)

4.2.3演算法思想:利用庫檔案中queue,裡面的push()、pop()、front()、back()、empty()、size()。分別實現入隊,出隊,訪問隊首元素,訪問隊尾元素,判斷佇列是否空,訪問佇列中的元素個數。

輔助流程圖:

4.2.4遇到的問題:

在for迴圈中定義i時直接定義了整型,雖然還是能正確執行,但是還是有些不妥。出隊在呼叫q.pop()不需加上其中變數x;

4.2.5解決方法:

在int前加上無符號型unsigned。在變數q.push(x)中需加上變數x。

4.3、全部源程式清單

**清單及主要注釋:

原始檔下的main.cpp如下:

#include

#include

using namespace std;

int main()

4.4、程式執行、測試與分析

執行結果:

佇列 先進先出

看前面的是什麼型別 指標 普通 出現指標指向空報錯的情況下,傳參不能為空,可以傳個空間的位址給他 queue front next null 從尾進 先進先出 define crt secure no warnings pragma once include include include incl...

Golang實現先進先出佇列

package queue type queue struct type node struct next node func newqueue queue func q queue isempty bool func q queue size int func q queue enqueue it...

JS實現佇列效果,先進先出

queue param size 佇列大小 function queue size 如果傳遞了size引數就設定了佇列的大小 if size null isnan size list.unshift data return true 從佇列中取出資料 this.pop function 返回佇列的大...