1:// 陣列佇列.cpp : 定義控制台應用程式的入口點。
2://
3: #include
4: #include
5: #include //abs()
6: #include
7: #include
8:using
namespace std;
9:
10://定義乙個佇列的結構體
11:struct myqueue
12: ;
17:
18://規則說明:
19://nhead 直接指向了對頭的資料位置,
20://ntail 直接指向了隊尾要插入的位置,
21://如果ntail==nhead ,隊列為空
22://ntail 比 nhead位置小一,(就是在他前面乙個),代表隊滿
23://所以陣列中能存放的資料要比陣列的空間小1,是為了判斷佇列滿的情況。
24:
25: myqueue g_queue; //定義全域性的佇列
26:
27:
28:
29://設定隊列為空
30:int setempty(void)
31:
36:
37://判斷佇列是否為滿
38:bool isfull(void)
39:
43:
44://判斷佇列是否為空
45:bool isempty(void)
46:
49:
50:
51://入隊
52:int enqueue(int ndata)
53:
60:else
61:
66: }
69://出隊
70:int dequeue(void)
71:
78:else
79:
84: }
85:
86:
87:int _tmain(int argc, _tchar* argv)
88:
95:
96://
97:for (int i = 0; i < 9; ++i)
98:
101:if (isfull()) //判斷佇列滿
102:
105:
106:for (int i = 0; i < 9; ++i) //出隊
107:
110: printf("/n");
111:
112:if (isempty())
113:
116:
117:for (int i = 0; i < 8; ++i) //測試出隊和入隊
118:
123: printf("/n");
124:
125:while(!isempty())
126:
129: printf("/n");
130:
131:
132: setempty();
133:for(int i=0; i<12; i++) //當入隊9 10 11時,佇列已經滿
134: enqueue(i);
135:
136:for(int i=0; i<15; i++)//當出對i=9-14,共6次
137: dequeue();
138:
139: system("pause");
140:return 0;
141: }
142:
佇列 陣列結構實現(迴圈佇列)
當元素較少時 tail位置在front後面 迴圈佇列與普通佇列出隊操作一樣,入隊的元素將會放在tail的位置上,隨後執行tail 操作 出隊時front位置上的元素將會置null,隨後執行front 操作 此時仍能保持著tail位置在front後面的狀態,如下圖所示 當元素繼續新增,最後乙個元素將放...
陣列實現迴圈佇列
1 動態陣列型別 typedef struct qnode queue 1 分配結構體內存與陣列記憶體 queue initialize1 相應main函式 int main 2 只分配陣列記憶體不分配結構記憶體 int initialize2 queue q 相應main函式 int main 2...
迴圈陣列實現佇列
佇列是先進先出 fifo 模式,從隊尾加入元素的操作叫入隊,從隊首刪除元素的操作叫出隊 設定兩個指標分別為front指向隊首,real指向隊尾。開始時front和real分別為 1。當有元素入隊時real 1 當有元素出隊時front 1.public class queuesimulation s...