キュー、FIFO配列またはリンクされたリスト
queue.h
// // 2020年3月8日にGXFによって作成されます。 // #ifndefのUNTITLED_QUEUE_H の#define UNTITLED_QUEUE_H 無効initQueue(); 無効エンキュー(intデータ); int型のデキュー(); int型isFull(); int型のisEmpty(); ボイド)(破壊します。 無効印刷キュー(); #endifの// UNTITLED_QUEUE_H
queue.c
// // 2020年3月8日にGXFによって作成されます。 // の#include "queue.h" の#include <stdio.hに> する#include <stdlib.h>に含まれ int型フロント= 0; int型後部= 0。 int型*キュー= NULL; INT長さ= 100。 int型のサイズ= 0; ボイドinitQueue(){ キュー= malloc関数(はsizeof(INT)*長さ)。 } ボイドエンキュー(intデータ){ IF(isFull()!){ キュー[リア] =データ。 リア=(リア+ 1)%の長さ。 サイズ++; } 他 のprintf( "キューがいっぱいです\ nは"); } int型のデキュー(){ IF(のisEmpty()!){ int型RES =キュー[フロント]。 フロント=(フロント+ 1)%の長さ。 サイズ- ; 解像度を返します。 } のprintf( "キューが空である\ n"); } INT isFull(){ IF(サイズ==長さ) リターン1。 0を返します。 } のisEmpty()INT { (サイズ== 0)の場合に 1を返します。 0を返します。 } ボイド)(破壊{ IF(キュー) フリー(キュー)。 } ボイド印刷キュー(){ ながら(!のisEmpty()){ のprintf( "%dの"、デキュー())。 } のprintf( "\ n"); }
main.cの
// // 2020年3月8日にGXFによって作成されます。 // の#include "queue.h" int型のmain(){ INT [5] = {4,9、2、3、1}。 initQueue(); 以下のために(INT iが= 0; I <はsizeof()/はsizeof(INT); I ++){ エンキュー([I])。 } 印刷キュー()。 破壊(); 0を返します。 }