佇列的c程式碼實現
阿新 • • 發佈:2019-01-22
#include<stdio.h>
#define maxsize 10
struct queue{
int data[maxsize];
int front;
int rear;
};
typedef struct queue Queue;
void queue_init(Queue *qe)
{
qe->front=-1;
qe->rear=-1;
}
Queue enqueue(Queue *qe,int s)
{
if(qe->rear==maxsize-1)
printf("佇列滿");
else
qe->data[qe->rear++]=s;
}
int dequeue(Queue *qe)
{
int s=0;
if(qe->front==qe->rear)
return 0;
//printf("佇列空");
else
{
s=qe->data[qe->front++];
return s;
}
}
void destroy(Queue *q)
{
q->rear=q->front=-1;
#define maxsize 10
struct queue{
int data[maxsize];
int front;
int rear;
};
typedef struct queue Queue;
void queue_init(Queue *qe)
{
qe->front=-1;
qe->rear=-1;
}
Queue enqueue(Queue *qe,int s)
{
if(qe->rear==maxsize-1)
printf("佇列滿");
else
qe->data[qe->rear++]=s;
}
int dequeue(Queue *qe)
{
int s=0;
if(qe->front==qe->rear)
return 0;
//printf("佇列空");
else
{
s=qe->data[qe->front++];
return s;
}
}
void destroy(Queue *q)
{
q->rear=q->front=-1;
}
先上一段程式碼,主要就是佇列結構體的定義和入隊操作以及出隊操作的函式實現
開始就是開闢一段連續的地址空間,然後用這個陣列來儲存一個佇列,用變數front和rear分別來記錄一個佇列的隊頭和隊尾
這樣,當入隊的時候,rear++,出隊的時候,front++
入隊的截止條件是rear==maxsize-1,也就是尾指標不能到達最大容量
出隊的截止條件是,front==rear,也就是出隊的元素不能超過已入隊的元素