队列的基本操作

来源:互联网 发布:mac dns污染怎么解决 编辑:程序博客网 时间:2024/04/25 06:22
#include<stdio.h>#define MAXSIZE 5typedef struct {int data[MAXSIZE];int front;int rear;}Queue;void QueueInit(Queue *Q){Q->front=0;Q->rear=0;}bool IsQueueEmpty(Queue *Q){return Q->front==Q->rear;}bool IsQueueFull(Queue *Q){return (Q->rear+1)%MAXSIZE==Q->front;}void EnQueue(Queue *Q,int data){    if(IsQueueFull(Q)){printf("队列已满!!!\n");return ;}Q->data[Q->rear]=data;Q->rear=(Q->rear+1)%MAXSIZE;}void DeQueue(Queue *Q){if(IsQueueEmpty(Q)){printf("栈已空无法删除!!!\n");return;}Q->front=(Q->front+1)%MAXSIZE;}int QueueLen(Queue *Q){return (Q->rear - Q->front + MAXSIZE)%MAXSIZE;}void ShowQueue(Queue *Q){if(IsQueueEmpty(Q)){printf("队列空!!!\n");return ;}int len=QueueLen(Q);for(int i=0;i<len;i++){printf("%d  ",Q->data[(Q->front+i)%MAXSIZE]);}printf("\n");}void main(){Queue qu;QueueInit(&qu);    EnQueue(&qu,1);EnQueue(&qu,2);EnQueue(&qu,3);EnQueue(&qu,4);EnQueue(&qu,5);EnQueue(&qu,8);    ShowQueue(&qu);    DeQueue(&qu);DeQueue(&qu);DeQueue(&qu);ShowQueue(&qu);EnQueue(&qu,5);EnQueue(&qu,8);ShowQueue(&qu);}/*#include<iostream.h>#include<stdlib.h>/////////////////队列的顺序存储///////////////////#define MAXSIZE 5typedef int Type;typedef  struct{  Type data[MAXSIZE];  int front;  int rear;}SqQueue;////////////初始化空队列///////////////void InitQueue(SqQueue **p){   (*p)=(SqQueue *)malloc(sizeof(SqQueue));   (*p)->front=0;   (*p)->rear=0;}int QueueLength(SqQueue *p){     int num=((p->rear)-(p->front)+MAXSIZE)%MAXSIZE; return num;}bool EnQueue(SqQueue *p,Type x)//入队列{   if((p->rear+1)%MAXSIZE==p->front) return false;   else    {       p->data[p->rear]=x;   p->rear=(p->rear+1)%MAXSIZE;   }   return true;}bool DeQueue(SqQueue *p,Type *x)  //带出出队列的数据{if(p->rear==p->front){return false;}      else{        (*x)=p->data[p->front];    p->front=(p->front+1)%MAXSIZE;}return true;}void show(SqQueue *p){   for(int i=p->front;i!=p->rear;(++i)%MAXSIZE)   {      cout<<p->data[i]<<"  ";   }   cout<<endl;}void main(){    SqQueue *p=NULL;    InitQueue(&p);    EnQueue(p,10);    EnQueue(p,6);EnQueue(p,3);EnQueue(p,5);EnQueue(p,8);    show(p);}*/

0 0
原创粉丝点击