佇列應用1 求解報數問題

2021-07-07 03:56:35 字數 758 閱讀 6752

(1).問題描述:

n個人從左向右編號1~n,然後從左向右報數「1,2,1,2,1,2...」

數到1的人出隊,數到2的人立即站到佇列的最右端

繼續報數,直到所有人出列

(2).資料組織:使用順序佇列

(3)設計演算法:

1.全部入隊

2.出隊乙個,輸出編號

3.若佇列不為空,再出隊乙個元素,並將剛出列的元素進隊到隊尾

package numberoff;

//佇列類,先進先出

class queue

// 進佇列

public void enqueue(int i)

rear = (rear + 1) % maxsize;

p[rear] = i;

} // 出佇列

public int dequeue()

front = (front + 1) % maxsize;

return p[front];

} // 判斷佇列是否為空

public boolean queueempty() }

public class main

int temp;

system.out.print("出隊順序為:");

while (!q.queueempty())

}}}

輸出:進隊順序為:1 2 3 4 5 6 7 8

出隊順序為:1 3 5 7 2 6 4 8 

queue求解迴圈報數刪除問題

因為剛使用queue物件,所以先記錄一下基本用法方便複習 q.empty 判斷佇列是否為空,空返回true,非空返回false q.size 返回佇列中元素的個數 q.pop 直接刪除隊首元素,沒有返回值 q.push 在隊尾壓入 q.front 返回隊首元素 q.back 返回隊尾元素 可以使用佇...

士兵佇列訓練報數問題

題意 某部隊進行新兵佇列訓練,將新兵從一開始按順序依次編號,並排成一行橫隊,訓練的規則如下 從頭開始一至二報數,凡報到二的出列,剩下的向小序號方向靠攏,再從頭開始進行一至三報數,凡報到三的出列,剩下的向小序號方向靠攏,繼續從頭開始進行一至二報數。以後從頭開始輪流進行一至二報數 一至三報數直到剩下的人...

資料結構 鏈式佇列的實現與應用舉例 報數問題

鏈式佇列是一種常見的佇列實現方式,通過鍊錶儲存佇列的各個資料元素,並設定兩個指標,分別指向隊頭和隊尾。應用佇列可以解決報數問題。報數問題 設有n個人站成一排,從左向右的編號分別為1 n,現在從左向右報數 1,2,1,2,1,2 數到 1 的人出列,數到 2 的人站到隊伍最右邊。報數過程反覆進行,直到...