佇列概念:
佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。
佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為出隊。因為佇列只允許在一端插入,在另一端刪除,所以只有最早進入佇列的元素才能最先從佇列中刪除,故佇列又稱為先進先出(fifo—first in first out)線性表。
使用技巧:
普通的佇列可以使用手寫,也可以使用stl
我還是比較傾向於stl的
手寫的使用不太方便。
在一些情況下,我們還可能用到特殊的佇列
比如迴圈佇列
佇列結構的使用,很大一部分體現在廣搜上。
在使用廣搜解決問題時
要注意空間大小,
可能需要一種比較好的優化
比如:雙向廣搜
當然這個對在下來說有點太難了
一本通例題:
週末舞會:
1 #include2 #include3using
namespace
std;
4int a[10001],b[10001],k1=1,k,i,f1=1,r1,f2=1
,r2;
5int
main()621
return0;
22 }
這就是乙個比較簡單的佇列使用
圍圈報數:
額又名:約瑟夫問題
迴圈佇列解決:
1 #include2 #include3using
namespace
std;
4int
n,m;
5int
main()
618 printf("
%d ",a[j]);p++;
19 a[j]=a[a[j]];k=1;20
}21return0;
22 }
鍊錶:
1 #include2 #include3 #include4using
namespace
std;
5struct
node;
9 node *head,*toil,*poi,*temp;
10int
main()
1126 poi=head->py ;
27 toil->py =head->py ;
28for(int i=1;i<=n;i++)
2939
return0;
40 }
這個鍊錶才90,應該是出特殊資料卡掉了乙個
嗯……後來我就屈服了
改用了迴圈佇列
家庭問題:
欸我就奇了怪了
這明明是乙個並查集
怎麼就混進了佇列裡面
1 #include2 #include3using
namespace
std;
4int py[103];5
int rep[103];6
intx,y;
7 inline int spite(int
enterprise)812
void join(int c1,int
c2)13
17int
main()
1829
int ans=0;30
for(int i=1;i<=n;i++)
3134
int maxn=0;35
for(int i=1;i<=n;i++)
3640 cout<"
"<41 }
這個題其實是
並查集模板題——親戚
的魔改版
但我還是沒看出來怎麼用佇列
接下來是全是bfs了
bfs的迷宮問題
太多了就不多說了
奇怪的電梯:
1 #include2 #include3 #include4 #include5using
namespace
std;
6struct
nodepy;
10int k[500
];11
bool f[500
];12
intn;
13int
s,e;
14int bfs(int
l)15
39if(i==2)40
4950}51
}52return -1;53
} 54
intmain()
55
連通塊:
1 #include2using
namespace
std;
3const
int n = 110;4
const
int flag[4][2]=,,,};
5int a[n][n],queue[n * n][2];6
intn, m, ans;
7bool
p[n][n];
8void bfs(int x,inty)9
26}27}
28int
main()
2940 cout<'\n'
;41return0;
42 }
總體來說
佇列算是目前比較基礎的資料結構
只有基礎紮實
以後做綜合性大題時
才不會一臉懵
-end-
資料結構 佇列
一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...
資料結構 佇列
資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...
資料結構 佇列
code for fun created by dream whui 2015 1 25 include stdafx.h include include using namespace std define true 1 define false 0 define ok 1 define erro...