C语言,用数组实现队列的入队,出队函数编程
假设数组a[10],有一系列坐标点(x,y)多于10个,依次加入到数组a[0],a[1]....,队列到a[10],第12个坐标点,加入到a[10],原本a[10]的坐标...
假设数组a[10],有一系列坐标点(x,y)多于10个,依次加入到数组a[0],a[1]....,队列到a[10],第12个坐标点,加入到a[10],原本a[10]的坐标点数值移到a[9],原本的a[9]的坐标点数值移到a[8],依次类推,原本第a[0]的坐标点数值移出队列
展开
展开全部
这样的话应该符合你的要求:
#include<stdio.h>
void add(int queue[],int x);
int Top(int queue[]);
void del(int queue[]);
int end=0;
int main()
{
int n;
scanf("%d",&n);//将要入队列n个元素
int queue[1000];
for(int i=1;i<=n;i++)//输入n个元素
{
add(queue,i);//将i加入队列
}
//验证加入队列的元素,将队列中的元素按照输入的顺序输出:
for( i=1;i<=n;i++)
{
printf("%d ",Top(queue));//Top函数返回队头元素
del(queue);//删除队头元素
}
//验证输出已经出队列后的队列(数组)元素:
printf("\n");
for(i=1;i<=n;i++)
printf("%d ",queue[i]);
printf("\n");
return 0;
}
void add(int queue[],int x)
{
queue[++end]=x;
}
int Top(int queue[])
{
return queue[1];//注意,这里的函数始终return queue[1];这里是和将普通数组中的元素输出最大的不同之处。!!!!!!
}
void del(int queue[])
{
for(int i=2;i<=end;i++)
{
queue[i-1]=queue[i];
}
queue[end]=0;//将删除后的地方置0
end--;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询