天天看點

隊列



1.編寫queue.h

#include<stdio.h>

#include<stdlib.h>

#define

n 100  

//定義隊列最大多少個

datatype

char  

//定義隊列的資料類型

struct

queue

{

data[n];//儲存資料的數組

int

front;      

//資料的開頭

rear;       

//資料的結尾

};

//給已經有的類型簡化一下

typedef

q;

//初始化隊列

void

init(q

* myqueue);

//判斷是否為空,1代表為空,0代表不為空

isempty(q

//入隊,吃進去

enqueue(q

* myqueue,

num);

//出隊,拉屎,傳回值就是拉的

dequeue(q

//列印隊列所有的元素

printfq(q

//擷取開頭的一個節點

gethead(q

queue.c

#include

"queue.h"

/*初始化隊列*/

*myqueue)

//代表為空,首尾都為0

myqueue->front

= myqueue->rear

= 0;

}

//判斷為空

* myqueue)

if (myqueue->front

== myqueue->rear)

return 1;

else

return 0;

/*入隊的過程*/

num)

if (myqueue->rear

== n)

printf("吃東西失敗");

return;

//指派

myqueue->data[myqueue->rear]

= num;

//增加一個

myqueue->rear

+= 1;

/*出隊*/

return -1;

return

myqueue->data[myqueue->front

- 1];

void 

printf("\n");

printf("\n你的腸胃為空");

for (int

i =

myqueue->front;

i <

myqueue->rear;i++)

    {

//顯示你的腸胃

printf("%c",

myqueue->data[i]);

    }

printf("\n腸胃為空,無法找到你要最先拉的屎");

//傳回第一個節點

myqueue->data[myqueue->front];

main.c

<stdio.h>

<stdlib.h>

main()

q

q1;//建立一個結構體變量

init(&q1);//初始化

enqueue(&q1,

'a');

printfq(&q1);

'b');

'c');

'd');

'e');

dequeue(&q1);

system("pause");