用顺序存储实现队列

#include<stdio.h> 
#include<stdlib.h>
#define MaxSize 10  //定义队列中元素的最大个数 

typedef struct{
    int data[MaxSize]; //用静态的数组”存放队列元素 
    int front,rear;           //队头指针和队尾指针      
    
}SqQueue;               //顺序栈的类型定义 
 

int main(){
    return 0; 
}
void InitQueue(SqQueue &Q){
    //初始时队头,队尾指向0 
    Q.front =Q.rear =0;
    
}

void testQueue(){
    //声明一个队列(顺序存储)
    SqQueue Q;
    
}
//判断队列是否为空 
bool QueueEmpty(SqQueue Q){
    if(Q.front ==Q.rear){
        return true;             //队空条件 
    }else{
        return false; 
    }
    
    
}

//入队
bool EnQueue(SqQueue &Q,int x){
    if(Q.rear+1==Q.front){
        return false;        //队满 
    }
    Q.data[Q.rear] = x;        //将x插入队尾 
    Q.rear = (Q.rear+1)%MaxSize;                //队尾指针后移 
    
    return true; 
    

//出队(删除一个队头元素,并用x返回)
bool DeQueue(SqQueue &Q,int &x){
    if(Q.front ==Q.rear){
        
        return false;     //队空则报错 
    }
    x = Q.data[Q.front];
    Q.front =(Q.front+1)%MaxSize;  //队头指针后移 
    
    return true;
    
    

//获取队头元素的值,用x返回
bool GetQueue(SqQueue &Q,int &x){
    if(Q.front ==Q.rear){
        
        return false;     //队空则报错 
    }
    x = Q.data[Q.front];
    
    return true;
    
    

 
 
 


 

以下是CodeBlocks中C语言用顺序存储实现队列的基本操作的代码: ```c #include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 // 队列最大长度 // 定义队列结构体 typedef struct { int data[MAXSIZE]; // 存储队列元素 int front; // 队头指针 int rear; // 队尾指针 } Queue; // 初始化队列 void initQueue(Queue *q) { q->front = q->rear = 0; } // 判断队列是否为空 int isEmpty(Queue q) { return q.front == q.rear; } // 判断队列是否已满 int isFull(Queue q) { return q.rear == MAXSIZE; } // 入队操作 int enQueue(Queue *q, int x) { if (isFull(*q)) { printf("队列已满,无法入队!\n"); return 0; } q->data[q->rear++] = x; return 1; } // 出队操作 int deQueue(Queue *q, int *x) { if (isEmpty(*q)) { printf("队列已空,无法出队!\n"); return 0; } *x = q->data[q->front++]; return 1; } int main() { Queue q; int x; initQueue(&q); enQueue(&q, 1); enQueue(&q, 2); enQueue(&q, 3); deQueue(&q, &x); printf("%d ", x); deQueue(&q, &x); printf("%d ", x); deQueue(&q, &x); printf("%d ", x); return 0; } ``` 上述代码中,MAXSIZE 宏定义了队列的最大长度,Queue 结构体定义了队列的结构,其中 data 数组用于存储队列元素,front 和 rear 分别为队头指针和队尾指针。 initQueue 函数用于初始化队列,isEmpty 和 isFull 函数用于判断队列是否为空和已满,enQueue 函数用于入队操作,deQueue 函数用于出队操作。在 main 函数中,我们对队列进行了初始化,然后依次入队元素 1、2、3,并依次出队元素并打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值