循环链表
1.这是一个循环链表程序
2.进队25个元素
3。出队10个元素
4.打印出队列里的元素。
5.进队12个元素,打印出队列里的元素,注意这时,队列front只大于rear值。
老师给的题目说是链表,但实际上他写的程序也是用数组。。所以这题用数组解决
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
int n,f,r;
int main()
{
n=25;
int *queue=0;
queue= (int *)malloc(sizeof(int)*30);//动态链表
if(queue==0)return 0;
for(int i=0;i<n;i++)queue[i]=i;
f=0;r=n;
int now=0;
while(now<10)//出队10次
{
now++;
f++;
}
if(r>f)//判断队头队尾关系
{
for(int i=f;i<=r;i++)printf("%d ",queue[i]);
printf("\n");
}
else
{
for(int i=f;i<=n-1;i++)printf("%d ",queue[i]);
for(int i=0;i<=r;i++)printf("%d ",queue[i]);
printf("\n");
}
int noww=1;
while(noww<=12)进队
{
r=(r+1)%30;
queue[r]=noww;
noww++;
}
printf("%d %d",f,r);
return 0;
}