⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 duilie.c

📁 队列的顺序实现与运算操作(数据结构---c语言)
💻 C
字号:
#include "stdio.h"    
#include "stdlib.h"       
#define OK 1    
#define ERROR 0    
#define TRUE 1    
#define FALSE 0    
#define OVERFLOW -2    
typedef int Status;    
typedef int QElemType;    
#define MAXQSIZE 5    
   
/*   
队列结构及操作实现   
*/   
typedef struct {    
    QElemType *base;    
    int front;    
    int rear;    
} SqQueue;    
   
/*   
初始化队列   
*/   
Status InitQueue(SqQueue &q) {    
    q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));    
    if(!q.base) exit(OVERFLOW);    
    q.rear=q.front=0;    
    return OK;    
}    
   
/*   
求队长   
*/   
int QueueLength(SqQueue q) {    
    return (q.rear+MAXQSIZE-q.front)%MAXQSIZE;    
}    
   
/*   
进队   
*/   
Status EnQueue(SqQueue &q,QElemType e) {    
    if( (q.rear+1)%MAXQSIZE==q.front ) return ERROR; //queue full    
    q.base[q.rear]=e;    
    q.rear=(q.rear+1)%MAXQSIZE;    
    return OK;    
}    
   
/*   
出队   
*/   
Status DeQueue(SqQueue &q,QElemType &e) {    
    if(q.rear==q.front) return ERROR;    
    e=q.base[q.front];    
    q.front=(q.front+1)%MAXQSIZE;    
    return OK;    
}    
   
/*   
打印队列值   
*/   
void DisplayQueue(SqQueue& q) {    
    int count=q.front;    
    printf("the Queue is: ");    
    while(count!=q.rear) {    
        printf("%d ",(QElemType)q.base[count]);    
        count++;    
        if(count>=MAXQSIZE) {    
            count=count%MAXQSIZE;    
        }    
    }    
    printf("\n");    
}    
/*   
测试队列各操作   
*/   
int main() {    
    SqQueue q;    
    QElemType e;    
   
    InitQueue(q);    
   
    EnQueue(q,0);    
    EnQueue(q,1);    
    EnQueue(q,2);    
    EnQueue(q,3);    
   
    DisplayQueue(q);    
        
    DeQueue(q,e);    
   
    printf("出队操作后,队列内容为:");    
    DisplayQueue(q);    
    return 0;    
}   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -