顺序队列的基本操作

定义

#define QueueSize 6
typedef struct {//定义
    int data[QueueSize];
    int fornt,real;//头指针,尾指针
}Queue;

实现

#include"stdio.h"
#include"stdlib.h"
#include"s.h"
void InitQueue(Queue *p){//初始化队列
    p->fornt =0;
    p->real =0;
}
int EmptyQueue(Queue *p){//探空队列
    if(p->fornt ==p->real )
        return 1;
    else
        return 0;
}
int FullQueue(Queue *p){//探满队列
    if(p->fornt ==(p->real +1)%QueueSize)
        return 1;
    else
        return 0;
}
void EnterQueue(Queue *p,int x){//元素入队
    p->data[p->real ] =x;
    p->real =(p->real +1)%QueueSize;
}
int LeaveQueue(Queue *p){//元素出队
    int x;
    x=p->data [p->fornt ];
    p->fornt =(p->fornt +1)%QueueSize;
    return x;
}
main(){
    Queue *p;
    int arr[]={1,2,3,4,5,6};
    int i,x;
    p=(Queue*)malloc(sizeof(Queue));//分配空间
    InitQueue(p);
    for(i=0;i<QueueSize;i++){
        EnterQueue(p,arr[i]);
    }
    for(i=0;i<QueueSize;i++){
        x=LeaveQueue(p);
        printf("%d ",x);
    }
    system("pause");
}

猜你喜欢

转载自blog.csdn.net/zhaoyanfeizhi/article/details/78989537