天天看点

队列



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");