这样的话应该符合你的要求:
#include<stdio.h>void add(int queue[],int x)
int Top(int queue[])
void del(int queue[])
int end=0
int main()
{
int n
int queue[1000]
for(int i=1i<=ni++)//输入n个元素
{
add(queue,i)//将i加入队列
}
//验证加入队列的元素,将队列中的元素按照输入的顺序输出:
for( i=1i<=ni++)
{
printf("%d ",Top(queue))//Top函数返回队头元素
del(queue)//删除队头元素
}
//验证输出已经出队列后的队列(数组)元素:
printf("\n")
for(i=1i<=ni++)
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=2i<=endi++)
{
queue[i-1]=queue[i]
}
queue[end]=0//将删除后的地方置0
end--
}
黑色的提示框是程序运行结果窗口,不是错误的窗口
代码错误说明如下:
while(Q->front!=Q->rear)//在本循环体之中,Q->front Q->rear的值始终没有变化//故而在这里肯定是一个死循环
{
printf("%d, ", Q->front->next->data)
Q->front->next=Q->front->next->next
}
//改正后的代码如下:
QNode* s = Q->front
while(s!=Q->rear)
{
printf("%d, ", s->data)
s=s->next
}
另外,所有的函数当中不应该有exit
exit是一个系统函数,表示结束程序,而不是退出函数
如果需要退出函数可以使用return来达到该目的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)