數據結構-隊列(c語言)

一下是簡單的使用c語言,進行隊列的簡單實現。包括初始化、入隊、出隊和查看隊頭元素。

#include<stdio.h> //循環隊列完成
#include<malloc.h>
#define MAXSIZE 20//設置隊列最大的長度
//進行結構體的定義
typedef struct Queue
{
	int data[MAXSIZE];
	int front,rear;
}queue,*que;
//進行隊列的初始化操作
void init(que q)
{
	q->front=0;
	q->rear=0;
}
//編寫隊列的入隊操作函數
void EnQueue(que q,int x)
{
	if((q->rear+1)%MAXSIZE == q->front) return;//判斷是否隊滿
	q->rear = (q->rear+1)%MAXSIZE;
	q->data[q->rear]=x;
}
//編寫隊列的出隊操作
int OutQueue(que q)
{
	if(q->rear==q->front)return -1;//判斷是否隊空
	q->front=(q->front+1)%MAXSIZE;
	return q->data[q->front];
}
//編寫隊列的尋找頭元素操作
int GetHead(que q)
{
	if(q->rear==q->front)return -1;//判斷是否隊空
	return q->data[(q->front+1)%MAXSIZE];
}

//主函數
int main()
{
	que q;
	int a;
	q = (que)malloc(sizeof(queue));
	init(q);
	//入隊操作
	EnQueue(q,1);
	EnQueue(q,2);
	EnQueue(q,3);
	EnQueue(q,4);
	printf("當前的隊頭元素是:%d\n",GetHead(q));
	//出隊操作
	a = OutQueue(q);
	printf("第一個出隊的元素是:%d\n",a);
	a = OutQueue(q);
	printf("第二個出隊的元素是:%d\n",a);
	a = OutQueue(q);
	printf("第三個出隊的元素是:%d\n",a);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章