#define M 10
#include <stdio.h>
int outQueue(struct Queue loopqueue);
void initQueue(struct Queue loopqueue);
int enQueue(struct Queue loopqueue, int num);
//设计队列的结构
struct Queue
{
int front;
int tail;
int array[M];
int size;
int capcity
} loopqueue;
//设计一个出队队列
int outQueue(struct Queue loopqueue)
{
int tmp;
if (loopqueue.size <= 0)
{
return NULL;
}
else
{
loopqueue.front++;
loopqueue.size--;
tmp = loopqueue.array[loopqueue.front];
return tmp;
}
}
//初始化队列
void initQueue(struct Queue loopqueue)
{
loopqueue.front = loopqueue.tail = 0;
loopqueue.size = 0;
}
//入队列
int enQueue(struct Queue loopqueue, int num)
{
//可以通过数组中的元素个数与总容量判断是不是满了 也可以根据首尾指针来判断
int temp1;
if (loopqueue.size >= M - 1)
{
printf("队列已经满了");
return -1;
}
else
{
//考虑
if (loopqueue.tail == loopqueue.capcity)
{
temp1 = (loopqueue.tail + 1) % loopqueue.capcity;
loopqueue.tail = temp1;
loopqueue.array[loopqueue.tail] = num;
}
else
{
loopqueue.array[loopqueue.tail++] = num;
loopqueue.size++;
}
}
}
//对队列进行遍历
void traverQueue(struct Queue loopqueue)
{
int temp;
while (loopqueue.size > 0)
{
if (loopqueue.front < loopqueue.capcity)
{
printf("%d",loopqueue.array[loopqueue.front]);
loopqueue.front++;
}
else
{
temp = (loopqueue.front+1)%loopqueue.capcity;
printf("%d",loopqueue.array[temp]);
loopqueue.front = temp;
}
loopqueue.size--;
}
}
void main()
{
struct Queue queue;
initQueue(queue);
enQueue(queue, 10);
traverQueue(queue);
}
失败的栈设计:设计栈的时候不能所有需要的数据都添加到结构体中--很累赘
猜你喜欢
转载自blog.csdn.net/qq_42664961/article/details/104087254
今日推荐
周排行