
队列具有先进先出的特性,设计一个20字节(unsigned char)的队列,请用C语言实现队列的push和pop函数。
1个回答
推荐于2016-07-19 · 知道合伙人软件行家
关注

展开全部
#include<stdio.h>
#include <string.h>
#define byte unsigned char
byte queue_buf[20], idx = 0;
void push(byte n)
{
if (idx < 20)
queue_buf[idx++] = n;
}
byte pop()
{
byte ret = 0;
if (idx-- > 0)
{
ret = queue_buf[0];
memcpy(queue_buf, &queue_buf[1], idx);
}
return ret;
}
byte size()
{
return idx;
}
int main()
{
int len;
for (int i = 1; i <= 20; i++)
push(i);
printf("size = %d\n", len = size());
for (int i = 1; i <= len; i++)
printf("%d ", pop());
printf("\n");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询