#include <stdio.h>
#include <stdlib.h>
//创建初始结构体
typedef struct Queue{
int data;
struct Queue *next;
}Queue;
//创建队首队尾指针
typedef struct {
Queue *first;
Queue *last;
}OP;
//创建队列
void Init(OP *p){
p->first = p->last = NULL;
}
//创建节点
Queue *Creat(int x){
Queue *p;
p = (Queue *)malloc(sizeof(Queue));
p->data = x;
p->next = NULL;
return p;
}
//入队
int Enter(OP *p, int x){
Queue *t;
t = Creat(x);
if(p->first == NULL && p->last == NULL) {
p->first = p->last = t;
return 0;
}
else{
p->last->next = t;
p->last = t;
return 1;
}
}
//出队
int Leave(OP *p, int *px){
Queue *t;
if(p->first == NULL && p->last == NULL)
return -1;
else if(p->first == p->last){
*px = p->first->data;
t = p->first;
p->first = p->last = NULL;
free(t);
return 0;
}
else{
*px = p->first->data;
t = p->first;
p->first = t->next;
free(t);
return 1;
}
}
//输出整个队列
void Print(OP *p){
while(p->first){
printf("%d\n",p->first->data);
p->first = p->first->next;
}
}
链式队列
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Java实现队列——顺序队列、链式队列 概念 先进者先出,这就是典型的“队列”。(First In, First ...
- 一.简介 在哔哩哔哩看视频学的,赫斌老师数据结构入门的内容-b站搜索:av6159200(P47),通过学习循环队...