1 Star 0 Fork 0

ihsan/Cspider

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
linkqueue.h 1.05 KB
一键复制 编辑 原始数据 按行查看 历史
#ifndef LINKQUEUE_H
#define LINKQUEUE_H
#include "basedef.h"
typedef struct linkType
{
struct linkType *next;
elemType data;
}link;
typedef struct linkQueueType
{
link *head, *tail;
int size;
}linkQueue;
void initQueue(linkQueue *q)
{
q -> size = 0;
if(!q -> head)q -> head = (link *)malloc(sizeof(link));
q -> tail = q -> head;
}
void pushQueue(linkQueue *q, elemType s)
{
if(!q -> size)
initQueue(q);
link *ln = (link *)malloc(sizeof(link));
ln -> next = NULL;
q -> tail -> next = ln;
q -> tail = ln;
ln -> data = s;
q -> size++;
}
void destroyQueue(linkQueue *q)
{
link *h = q -> head;
if(!h)
return;
while(h -> next)
{
link *n = h -> next;
free(h);
h = n;
}
q -> head = q -> tail = NULL;
q -> size = 0;
}
elemType popQueue(linkQueue *q)
{
if(q -> size > 0)
{
link *h = q -> head -> next;
elemType r = h -> data;
q -> head -> next = h -> next;
q -> size--;
free(h);
return r;
}
}
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/KurbanEhsan/cspider.git
git@gitee.com:KurbanEhsan/cspider.git
KurbanEhsan
cspider
Cspider
master

搜索帮助