1. 程式人生 > >程式設計實現順序佇列的入隊操作和出隊操作,並將出隊結果輸出

程式設計實現順序佇列的入隊操作和出隊操作,並將出隊結果輸出

標頭檔案:函式的宣告

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define QUEUESIZE 100
typedef char ElemType;
typedef struct
{
	ElemType queue[QUEUESIZE];
	int front;
	int rear;
}SeqQueue;

void InitQueue(SeqQueue *SQ);
int QueueEmpty(SeqQueue SQ);
int EnQueue(SeqQueue *SQ,ElemType e);
int DeQueue(SeqQueue *SQ,ElemType *e);
int Gethead(SeqQueue SQ,ElemType *e);
void ClearQueue(SeqQueue *SQ);


函式的定義

#include "順序隊.h"

void InitQueue(SeqQueue *SQ)
{
	SQ->front = SQ->rear  = 0;
}

int QueueEmpty(SeqQueue SQ)
{
	if(SQ.front == SQ.rear)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}
int EnQueue(SeqQueue *SQ,ElemType e)
{
	if(SQ->rear == QUEUESIZE)
	{
		return 0;
	}
	else
	{
		SQ->queue[SQ->rear] = e;
		SQ->rear = SQ->rear + 1;
		return 1;
	}
}
int DeQueue(SeqQueue *SQ,ElemType *e)
{
	if(SQ->front == SQ->rear)
	{
		return 0;
	}
	else
	{
		*e = SQ->queue[SQ->front];
		SQ->front = SQ->front + 1;
		return 1;
	}
}

int Gethead(SeqQueue SQ,ElemType *e)
{
<span style="white-space:pre">	</span>if(SQ.front == SQ.rear)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>return 0;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>else
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>*e = SQ.queue[SQ.front];
<span style="white-space:pre">		</span>return 1;
<span style="white-space:pre">	</span>}
}
void ClearQueue(SeqQueue *SQ)
{
	SQ->front = SQ->rear  = 0;
}


函式的應用

#include "順序隊.h"

int main(void)
{
	SeqQueue Q;
	char str[] = "ABCDEFGH";
	int i;
	char x;
	InitQueue(&Q);
	for(i = 0;i < sizeof(str)/sizeof(str[0]);i++)
	{
		EnQueue(&Q,str[i]);
	}
	DeQueue(&Q,&x);
	printf("出佇列的元素是:%c\n",x);
	printf("順序佇列中的元素是:");
	if(!QueueEmpty(Q))
	{

		for(i = Q.front ;i < Q.rear ;i++)
		{
			printf("%c",Q.queue[i]);
		}
	}
	printf("\n");
	return 0;
}