1. 程式人生 > >C語言實現一個最簡單的佇列

C語言實現一個最簡單的佇列

1、佇列.h

#include<stdio.h>
#include<stdlib.h>

#define N 100   //定義佇列最大多少個
#define datatype char  //定義佇列的資料型別

struct queue
{
    datatype data[N];//儲存資料的陣列
    int front;  //資料的開頭
    int rear;  //資料的結尾
};
typedef struct queue Q; //給已經有的型別簡化一下

void init(Q *myqueue); //初始化結構體
int isempty(Q *myqueue); //判斷是否為空,1為空,0不為空
void enQueue(Q *myqueue,datatype num); //入隊 datatype DeQueue(Q *myqueue);//出隊 void printfQ(Q *myqueue); //列印佇列所有的元素 datatype gethead(Q *myqueue);//獲取開頭的一個節點

2、佇列.c

#include "佇列.h"


void init(Q *myqueue)
{
    myqueue->front = myqueue->rear = 0;
}

int isempty(Q *myqueue)
{
    if (myqueue->front==myqueue->rear)
    {
        return 1
; } else { return 0; } } void enQueue(Q *myqueue, datatype num) { if (myqueue->rear == N) { printf("失敗"); return -1; } else { myqueue->data[myqueue->rear] = num;//賦值 myqueue->rear += 1;//增加一個 } } datatype DeQueue
(Q *myqueue) { if (myqueue->front==myqueue->rear) { printf("失敗"); return -1; } else { myqueue->front += 1; return myqueue->data[myqueue->front-1]; } } void printfQ(Q *myqueue) //列印佇列所有的元素 { printf("\n"); if (myqueue->front==myqueue->rear) { printf("為空"); } else { for (int i = myqueue->front; i < myqueue->rear; i++) { printf("%6c",myqueue->data[i]); } } } datatype gethead(Q *myqueue) { if (myqueue->front == myqueue->rear) { printf("為空"); return -1; } else { return myqueue->data[myqueue->front]; } }

3、main.c

#include<stdio.h>
#include<stdlib.h>
#include "佇列.h"


void main()
{
    Q Q1;//建立
    init(&Q1);
    enQueue(&Q1, 'A');
    printfQ(&Q1);
    enQueue(&Q1, 'B');
    printfQ(&Q1);
    enQueue(&Q1, 'C');
    printfQ(&Q1);
    enQueue(&Q1, 'D');
    printfQ(&Q1);
    enQueue(&Q1, 'E');
    printfQ(&Q1);

    DeQueue(&Q1);
    printfQ(&Q1);
    DeQueue(&Q1);
    printfQ(&Q1);
    DeQueue(&Q1);
    printfQ(&Q1);
    DeQueue(&Q1);
    printfQ(&Q1);
    DeQueue(&Q1);
    printfQ(&Q1);

    DeQueue(&Q1);
    printfQ(&Q1);
    DeQueue(&Q1);
    printfQ(&Q1);
    DeQueue(&Q1);
    printfQ(&Q1);



    system("pause");
}

這裡寫圖片描述