c语言-顺序队列

#include"SeqQueue.h"

void main(){

    Queue Q;
    IniQueue(&Q);
    ElemType v;


    for(int i=1;i<=5;++i){
        EnQueue(&Q,i);
    }
    ShowQueue(&Q);
    DeQueue(&Q);
    ShowQueue(&Q);

    GetHead(&Q,&v);
    printf("%d\n",v);
    v=Length(&Q);
    printf("%d\n",v);
    ClearQueue(&Q);
    ShowQueue(&Q);
    //DestroyQueue(&Q);
}
#include"SeqQueue.h"



void IniQueue(Queue *Q){
    Q->base=(ElemType *)malloc(sizeof(ElemType) * MAXSIZE);
    assert(Q->base!=NULL);
    Q->front=Q->rear=0;


}

void EnQueue(Queue *Q,ElemType x){
    if(Q->rear>=MAXSIZE)
        return;
    Q->base[Q->rear++]=x;
}

void ShowQueue(Queue *Q){
    for(int i=Q->front;i<Q->rear;++i){
        printf("%5d",Q->base[i]);
    }
    printf("\n");
}

void DeQueue(Queue *Q){
    if(Q->front==Q->rear)
        return;
    Q->front++;
}

void GetHead(Queue *Q,ElemType *v){
    if(Q->front==Q->rear)
        return;
    *v=Q->base[Q->front];
}

int Length(Queue *Q){

    return (Q->rear-Q->front);
}

void ClearQueue(Queue *Q){
    Q->front=Q->rear=0;
}
void DestroyQueue(Queue *Q){
    ClearQueue(Q);
    Q->base=NULL;
}
#ifndef __SEQQUEUE_H__
#define __SEQQUEUE_H__


#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

#define ElemType int

#define MAXSIZE 8

typedef struct Queue{
    ElemType *base;
    int front;
    int rear;
}Queue;

void IniQueue(Queue *Q);
void EnQueue(Queue *Q,ElemType x);
void ShowQueue(Queue *Q);
void DeQueue(Queue *Q);

void GetHead(Queue *Q,ElemType *v);
int Length(Queue *Q);
void ClearQueue(Queue *Q);
void DestroyQueue(Queue *Q);


#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值