資料結構之佇列

2021-08-18 17:27:27 字數 1325 閱讀 6853

歡迎來我家玩!

# 資料結構之佇列

@(資料結構)[hicksalmon|佇列|杭電1276]

**佇列**

先進先出(first in first out)本篇為順序結構

- **實現迴圈佇列方式:**

- 隊頭隊尾指標加1,可用取模(取餘)運算實現

- 隊頭指標進1:front = (front + 1)% maxlen;

- 隊尾指標進1: rear = (rear + 1)% maxlen;

- 佇列初始化:front = rear = 0;

- 對空條件:front = rear;

- 隊滿條件:(rear + 1)% maxlen == front;

-------------------

## 題目描述

``` python

某部隊進行新兵佇列訓練,將新兵從一開始按順序依次編號,並排成一行橫隊,訓練的規則如下:從頭開始一至二報數,凡報到二的出列,剩下

的向小序號方向靠攏,再從頭開始進行一至三報數,凡報到三的出列,剩下的向小序號方向靠攏,繼續從頭開始進行一至二報數。。。,以後從

頭開始輪流進行一至二報數、一至三報數直到剩下的人數不超過三人為止。

```## 輸入樣例220

40## 輸出樣例

1 7 19

1 19 37

## 題目解析

題有兩種報數方式;我們建立兩個陣列,乙個用來存當前剩下的人,乙個用來存報數之後的人員,直到最後少於四人為止。

## ac**

```python

#include

#include

#include

#define n 5002

using namespace std;

//建立乙個佇列結構體

struct q

void push(int a)

int gettop()

bool check()

bool isempty()

}q[2];

int main()

int now = 0, pre= 1;

i = 0;

while (!q[now].check())

}else

}i ^= 1;//0與1之間的變換,以便讓上面的報數方式進行選擇

swap(now, pre);//交換工作佇列

}printf("%d", q[now].gettop());

while (!q[now].isempty())

printf("\n");

}return 0;

}```

資料結構之佇列

八 佇列 鏈式佇列 鍊錶實現 隊尾 rear 隊首 front 靜態佇列 陣列實現 必須是迴圈佇列 需要幾個引數來確定,各引數含義 1 佇列初始化 front和rear值都是0 2 佇列非空 front代表佇列第乙個元素 rear代表佇列最後乙個元素的 下乙個元素 3 佇列空 front和rear相...

資料結構之佇列

與棧相反,佇列是一種先進先出的線性表,它只允許在表的一端進行,而在另一端刪除元 素。在佇列中,允許插入的一端叫做隊尾,允許刪除的一端則稱為隊頭。1 鏈佇列 佇列的鏈式表示和實現 用鍊錶表示的佇列簡稱為鏈佇列,乙個鏈佇列顯然需要兩個分別指示對頭和隊尾的指標 分別稱為頭指 針和尾指標 才能唯一確定。這裡...

資料結構之佇列

一 佇列的介紹 佇列 queue 是一種線性儲存結構。它有以下幾個特點 1 佇列中資料是按照 先進先出 fifo,first in first out 方式進出佇列的。2 佇列只允許在 隊首 進行刪除操作,而在 隊尾 進行插入操作。佇列通常包括的兩種操作 入佇列 和 出佇列。1.佇列的示意圖 佇列中...