顺序队列
顺序队列的出队、入队、判空、判满,挖五个空,填写代码。
#include<stdio.h> #include<malloc.h> #define Maxsize 100 typedef struct{ int data[Maxsize]; int rear,front; int num; }C_Sequeue; //队列的初始化算法 C_Sequeue *Init_Sequeue(){ C_Sequeue *sq; sq=new C_Sequeue; sq->front=sq->rear=Maxsize-1; sq->num=0; return sq; } //入队 int In_Sequeue(C_Sequeue *sq,int x){ if(sq->num==Maxsize) return 0; else{ sq->rear=(sq->rear+1)&Maxsize; sq->data[sq->rear]=x; sq->num++; return 1; } } //出队 int Out_Sequeue(C_Sequeue *sq,int *x){ if(sq->num==0) return 0; else{ sq->front=(sq->front+1)%Maxsize; *x=sq->data[sq->front]; sq->num--; return 1; } } //判空队 int Empty_sequeue(C_Sequeue *sq) { if(sq->num==0) return 1; else return 0; } void main() { C_Sequeue *sq; int i; {BF: printf("\n********************************************\n"); printf("* 请输入要进行的操作编号 *\n"); printf("* 1.队列的初始化 *\n"); printf("* 2.入队 *\n"); printf("* 3.出队 *\n"); printf("* 4.判空 *"); printf("\n********************************************\n"); scanf("%d",&i); } switch(i) { case 1: { sq=Init_Sequeue(); printf("初始化成功!\n"); } case 2: { int a,b; printf("请输入想要入队的数:\n"); scanf("%d",&a); b=In_Sequeue(sq,a); if(b==0) printf("入队队失败!\n"); if(b==1) printf("入队成功!\n"); } case 3: { int m,d; printf("请输入要出队的数:\n"); scanf("%d",&m); d=Out_Sequeue(sq, &m); if(d==0) printf("出队失败!\n"); if(d==1) printf("出队成功!\n"); } case 4: { int t; t=Empty_sequeue(sq); if(t==0) printf("队列为空!\n"); else printf("队列不为空!\n"); } goto BF; } }