隊列的c語言實現
發布時間: 2024-12-15 20:36:55
『壹』 C語言中使用隊列
如果你用vc,#include<deque>就好了,但是注意要加上using naemspace std;
我是當你用的c++的STL,STL中沒有真正的隊列和棧,他們都是通過對雙端隊列的改造得到的,所以包含的文件可能和你想的不一樣。而且這些頭文件都沒有.h結尾!很特別
如果你不是vc,當我沒說
『貳』 C語言用數組實現循環隊列的入隊出隊
//定義一個int型數組que,長度為N(常量切大於2).
intque[N];
intrear=0,front=0;//隊尾隊頭
判斷隊列已滿:
if((front+1)%N==rear%N)//成立則隊列已滿
判斷隊列為空
if((rear==front))//成立則隊列空
入隊(一般在入隊前判斷隊列是否已滿)
//將val入隊
que[front++]=val;
front%=N;
出隊(一般在出隊前判斷隊列是否為空)
rear=(rear+1)%N;
下一個要出隊的元素(一般先判斷是否為空)
que[rear];
『叄』 C語言,用數組實現隊列的入隊,出隊函數編程
這樣的話應該符合你的要求:
#include<stdio.h>
voidadd(intqueue[],intx);
intTop(intqueue[]);
voiddel(intqueue[]);
intend=0;
intmain()
{
intn;
scanf("%d",&n);//將要入隊列n個元素
intqueue[1000];
for(inti=1;i<=n;i++)//輸入n個元素
{
add(queue,i);//將i加入隊列
}
//驗證加入隊列的元素,將隊列中的元素按照輸入的順序輸出:
for(i=1;i<=n;i++)
{
printf("%d",Top(queue));//Top函數返回隊頭元素
del(queue);//刪除隊頭元素
}
//驗證輸出已經出隊列後的隊列(數組)元素:
printf(" ");
for(i=1;i<=n;i++)
printf("%d",queue[i]);
printf(" ");
return0;
}
voidadd(intqueue[],intx)
{
queue[++end]=x;
}
intTop(intqueue[])
{
returnqueue[1];//注意,這里的函數始終returnqueue[1];這里是和將普通數組中的元素輸出最大的不同之處。!!!!!!
}
voiddel(intqueue[])
{
for(inti=2;i<=end;i++)
{
queue[i-1]=queue[i];
}
queue[end]=0;//將刪除後的地方置0
end--;
}
熱點內容