📄 循环队列的程序.txt
字号:
这是我们劳动的结晶,和大家共同分享.也希望各位高手多多指教.如果有更好的程序,请不要吝啬哦.
#include <stdio.h>
#define MAX 10
#define TRUE 1
typedef struct
{
int data[MAX];
int front, rear;
int isNull;
}Sequeue;
void Init(Sequeue *sq)
{
sq->front=0;
sq->rear=0;
sq->isNull=1;
}
int Ins(Sequeue *sq,int x)
{
if((sq->front+1)%MAX ==(sq->rear+1)%MAX && sq->isNull!=1)
{
printf("\nFull squeue!New data in the old position!\n");
sq->rear=(sq->rear+1)%MAX;
sq->data[sq->rear]=x;
sq->front=(sq->front+1)%MAX;
}
else
{
sq->rear=(sq->rear+1)%MAX;
sq->data[sq->rear]=x;
printf("\nData in\n");
sq->isNull=0;
return(TRUE);
}
sq->isNull=0;
return x;
}
int Del(Sequeue *sq,int x)
{
if(sq->rear==sq->front && sq->isNull==1)
{
printf("the queue is empty\n");
return NULL;
}
else
{
if((sq->rear)%MAX==(sq->front+1)%MAX)
sq->isNull=1;
sq->front=(sq->front+1)%MAX;
x= sq->data[sq->front];
printf("\nData out\n");
return(x);
}
}
int Print(Sequeue *sq)
{
int k;
if(sq->rear==sq->front && sq->isNull==1)
{
printf("the queue is empty\n");
return NULL;
}
else
printf("The sequeue is:\n");
k=sq->front;
do
{
k++;
k=k%MAX;
printf("-%d-",sq->data[k]);
}while(k!=sq->rear);
return 1;
}
main()
{
Sequeue *head=(Sequeue*)malloc(sizeof(Sequeue));
int c,x;
clrscr();
Init(head);
do
{
printf("\n**********\nPlease select a number to input:\n1 insert a number\n2 delete a number\n3 print the squeue\n4 quit the program\n**********\n");
c=getch();
switch(c)
{ case'1':
printf("\nPlease Enter a number\n");
scanf("%d",&x);
Ins(head,x);
break;
case '2':
Del(head,x);
break;
case'3':
Print(head);
break;
}
}while(c!='4');
free(head);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -