チーム
チームの定義
一方の端でのみ挿入を許可し、もう一方の端で削除のみを許可する線形テーブルは、先入れ先出し (First In First Out) 線形テーブル、または略して FIFO とも呼ばれます。
挿入可能な端をテール、削除可能な端をヘッドと呼びます。
キューの長さの計算式: 長さ=後部-前部+最大サイズ
チーム運営
- データ型を定義する
#define SIZE 20
typedef int QElemType;
typedef struct
{
QElemType data[SIZE];
int front;
int rear;
}
- チームの初期化
Status InitQueue(Queue *init_queue)
{
init_queue->front = 0;
init_queue->rear = 0;
return OK;
}
- チーム長の計算
int QueueLength(Queue *queue)
{
return (queue->rear - queue->front + SIZE) % SIZE;
}
- エンキュー操作
Status EnQueue(Queue *in_queue, QElemType new_data)
{
if((in_queue->rear +1 )%SIZE == in_queue->front){
return ERROR;
}
in_queue->data[in_queue->rear] = new_data;
in_queue->rear = (in_queue->rear +1 )%SIZE;
return ERROR;
}
- デキュー操作
Status DeQueue(Queue *out_queue, QElemType *delete_data)
{
if(out_queue->rear == out_queue->front)
return ERROR;
*delete_data = out_queue->data[out_queue->front];
out_queue->front = (out_queue->front +1 )%SIZE;
return ERROR;
}