一下是簡單的使用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);
}