C语言,用数组实现队列的入队,出队函数编程

C语言,用数组实现队列的入队,出队函数编程,第1张

这样的话应该符合你的要求:

#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=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来达到该目的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12104789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存