顺序表--队列C语言的基本操作

mac2024-10-01  43

队列也是操作受限的线性表,采用先进先出的方式 队列也有两种存储方式分别为顺序顺序和链式存储 队列的顺序表示–使用一位数组 下面是队列的定义 循环队列在逻辑上实现了头尾相连,不会出现假溢出

#define QElemtype int #define maxsize 100 typedef struct { QElemtype *base;//数组 int front ;//头指针 int real;//尾指针 }SqQueue;

初始化

void InitSqQueue(SqQueue &Q) { Q.base=(QElemtype *)malloc(maxsize*sizeof(QElemtype)); if(!Q.base) exit(0); Q.front=Q.real=0; }

进队

void SqQueuein(SqQueue &Q,QElemtype e) { if((Q.real+1)%maxsize==Q.front) { printf("队满"); exit(0); } Q.base[Q.real]=e; Q.real=(Q.real+1)%maxsize; }

出队

void SqQueueout(SqQueue &Q,QElemtype &e) { if(Q.front==Q.real) { printf("队空"); exit(0); } e=Q.base[Q.front]; Q.front=(Q.front+1)%maxsize; }
最新回复(0)