数据结构代码实现(链队列)
来源:互联网 发布:我家我设计软件 编辑:程序博客网 时间:2024/06/01 09:46
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct QNode
{
int date;
QNode *pNext;
}QNode,*pQNode;
typedef struct Queue
{
pQNode front;
pQNode rear;
}LinkQueue,*pLinkQueue;
bool init_LinkQueue(pLinkQueue);
bool en_LinkQueue(pLinkQueue,int);
bool traverse_LinkQueue(pLinkQueue);
bool is_empty(pLinkQueue);
bool de_LinkQueue(pLinkQueue,int *);
bool DestroyQueue(pLinkQueue);
int main()
{
LinkQueue q;
int val;
init_LinkQueue(&q);
en_LinkQueue(&q,3);
en_LinkQueue(&q,2);
en_LinkQueue(&q,1);
de_LinkQueue(&q,&val);
printf("delete is %d\n",val );
traverse_LinkQueue(&q);
#include <malloc.h>
#include <stdlib.h>
typedef struct QNode
{
int date;
QNode *pNext;
}QNode,*pQNode;
typedef struct Queue
{
pQNode front;
pQNode rear;
}LinkQueue,*pLinkQueue;
bool init_LinkQueue(pLinkQueue);
bool en_LinkQueue(pLinkQueue,int);
bool traverse_LinkQueue(pLinkQueue);
bool is_empty(pLinkQueue);
bool de_LinkQueue(pLinkQueue,int *);
bool DestroyQueue(pLinkQueue);
int main()
{
LinkQueue q;
int val;
init_LinkQueue(&q);
en_LinkQueue(&q,3);
en_LinkQueue(&q,2);
en_LinkQueue(&q,1);
de_LinkQueue(&q,&val);
printf("delete is %d\n",val );
traverse_LinkQueue(&q);
return 0;
}
bool init_LinkQueue(pLinkQueue pQ)
{
}
bool init_LinkQueue(pLinkQueue pQ)
{
pQ->front=pQ->rear=(pQNode)malloc(sizeof(QNode));//head node
if(NULL==pQ->front)
{
exit(-1);
return false;
}
else
return true;
}
if(NULL==pQ->front)
{
exit(-1);
return false;
}
else
return true;
}
bool en_LinkQueue(pLinkQueue pQ,int val)
{
pQNode New;
New=(pQNode)malloc(sizeof(QNode));
if(NULL==New)
{
{
pQNode New;
New=(pQNode)malloc(sizeof(QNode));
if(NULL==New)
{
exit(-1);
return false;
}
New->date=val;
pQ->rear->pNext=New;
pQ->rear=New;
return true;
return false;
}
New->date=val;
pQ->rear->pNext=New;
pQ->rear=New;
return true;
}
bool is_empty(pLinkQueue pQ)
{
bool is_empty(pLinkQueue pQ)
{
if(pQ->front==pQ->rear)
return true;
else
return false;
}
return true;
else
return false;
}
bool traverse_LinkQueue(pLinkQueue pQ)
{
if(is_empty(pQ))
{
printf("LinkQueue is empty \n");
return false;
}
else
{
pQNode p=pQ->front;
while(p!=pQ->rear)
{
{
if(is_empty(pQ))
{
printf("LinkQueue is empty \n");
return false;
}
else
{
pQNode p=pQ->front;
while(p!=pQ->rear)
{
printf("%d ",p->pNext->date );
p=p->pNext;
}
}
return true;
p=p->pNext;
}
}
return true;
}
bool de_LinkQueue(pLinkQueue pQ,int * val)
{
if(is_empty(pQ))
{
printf("pLinkQueue is empty");
return false;
}
else
{
pQNode p=pQ->front->pNext;//delete postion
*val=p->date;
pQ->front->pNext=p->pNext;
if(pQ->rear==p)
pQ->rear=pQ->front;//finally element
if(pQ->rear==p)
pQ->rear=pQ->front;//finally element
free(p);
return true;
return true;
}
}
bool DestroyQueue(pLinkQueue pQ)
{
while (pQ->front)
{
pQ->rear=pQ->front->pNext;
free(pQ->front);
pQ->front=pQ->rear;
}
return true;
}
阅读全文
0 0
- 数据结构代码实现(链队列)
- 数据结构-链队列代码实现
- 数据结构队列C++代码实现
- 数据结构代码实现(循环队列的实现,数组)
- 数据结构之链表、栈和队列 java代码实现
- 数据结构(C实现)------- 链队列
- 【数据结构】顺序队列(链表实现)
- 数据结构 队列以及Java代码实现
- 看数据结构写代码(16)顺序队列的实现(循环队列)
- 数据结构链队列java实现
- 数据结构-链表队列实现
- 数据结构-队列-链表实现
- 数据结构队列(链式实现)
- 《数据结构》 队列(Queue)操作代码集合
- 《数据结构》C++代码 堆(优先队列)
- 数据结构之--队列(Java代码)
- 数据结构之--优先级队列(Java代码)
- 数据结构(7) 链队列 c++ 模板实现
- 学习笔记_Gradle和Proguard
- AJAX获取数据成功后的返回数据如何声明成全局变量
- linux基础知识
- Android逆向之DcseTBS获取设备ID原理
- 四周第二次课 2017.11.07 vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、vim一般模式下复制、剪切和粘贴
- 数据结构代码实现(链队列)
- 计蒜客 堆积木
- ListView多条目加载
- java中的jdk切换(无需卸载原有jdk)
- 数据分析与机器学习入门(一)——EDA探索性数据分析(持续更新中...)
- HTML获取元素
- MyEclipse输出syso使用自动补全功能不是标准的输出语句
- MyBatits之基本查询
- ZOJ 1992 Sightseeing Tour(混合图欧拉回路)