循环队列的基本操作.txt

来自「这是有关数据结构的例程序」· 文本 代码 · 共 59 行

TXT
59
字号
definition.h
======================================
#define MAXSIZE 100  //最大队列长度

typedef char ElemType;

typedef struct{
ElemType *base;
unsigned front, rear;//队头指针,队尾指针
}SqQueue;

int InitQueue(SqQueue *);//建立空队列
int EnQueue(SqQueue *, ElemType);//进入队列
int DeQueue(SqQueue *);//出队
int Length(SqQueue *);//队列长度
=========================================================

main.c
============================================
#include<stdio.h>
#include"definition.h"

int main()
{ return 0;
} =============================================

function.c
====================================
#include <stdio.h>
#include <malloc.h>
#include "definition.h"

int InitQueue(SqQueue *Q)//建立空队列
{ Q->base=(ElemType *)malloc( MAXSIZE*sizeof(ElemType) );
if(!Q->base)
  return 1;
Q->front=Q->rear=0;
return 0;
}

int EnQueue(SqQueue *Q, ElemType e)//进入队列
{ if( (Q->rear+1)%MAXSIZE==Q->front )
  return 1;//队满(此判断队满法的代价是,少利用一个空间)
Q->base[Q->rear]=e;
Q->rear=++Q->rear % MAXSIZE;
return 0;
}

int DeQueue(SqQueue *Q)//出队
{ if(Q->front==Q->rear)
  return 1;//队空
Q->front= ++Q->front % MAXSIZE;
return 0;
}

int Length(SqQueue *Q)//队列长度
{ return (Q->rear - Q->front + MAXSIZE) % MAXSIZE;
}

⌨️ 快捷键说明

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