1、顺序队列的实现
typedef char ElemType;
typedef struct{
ElemType elem[MaxSize];
int front,rear;
}SqQueue;
void InitQueue(SqQueue *&q)
{
q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=0;
}
void ClearQueue(SqQueue *&q)
{
free(q);
}
int QueueLength(SqQueue *q){
return (q->rear-q->front+MaxSize)%MaxSize;
}
int QueueEmpty(SqQueue *q){
return q->front==q->rear;
}
int enQueue(SqQueue *&q,ElemType e){
if((q->rear+1)%MaxSize==q->front){
return 0;
}
q->rear=(q->rear+1)%MaxSize;
q->elem[q->rear]=e;
return 1;
}
int deQueue(SqQueue *&q,ElemType &e){
if(q->front==q->rear){
return 0;
}
q->front=(q->front+1)%MaxSize;
e=q->elem[q->front];
return 1;
}
2、链式队列的实现
typedef char ElemType;
typedef struct qnode{
ElemType data;
struct qnode *next;
}QNode;
typedef struct{
QNode *front;
QNode *rear;
}LiQueue;
void InitQueue(LiQueue *&q){
q=(LiQueue *)malloc(sizeof(LiQueue));
q->front=q->rear=NULL;
}
void ClearQueue(LiQueue *&q){
QNode *p=q->front;
if(p!=NULL){
QNode *r=p->next;
while(r!=NULL){
free(p);
p=r;
r=r->next;
}
free(p);
}
free(q);
}
int QueueLength(LiQueue *q){
QNode *p=q->front;
int i=0;
while(p!=NULL){
i++;
p=p->next;
}
return i;
}
int QueueEmpty(LiQueue *q){
return q->rear==NULL;
}
void enQueue(LiQueue *&q,ElemType e){
QNode *qnode;
qnode=(QNode*)malloc(sizeof(QNode));
qnode->data=e;
qnode->next=NULL;
if(q->rear==NULL){
q->front=q->rear=qnode;
}else{
q->rear->next=qnode;
q->rear=qnode;
}
}
int deQueue(LiQueue *&q,ElemType &e){
QNode *t;
if(q->rear==NULL){
return 0;
}
if(q->front==q->rear){
t=q->front;
q->front=q->rear=NULL;
}else{
t=q->front;
q->front=q->front->next;
}
e=t->data;
free(t);
return 1;
}
分享到:
相关推荐
数据结构中队列的具体实现,给出了代码,可以加强对队列这一数据结构的理解和应用。希望大家下载后自己实现一下,得出正确的结果,真正的理解这一结构的思想。数据结构中队列的具体实现,给出了代码,可以加强对队列...
c语言数据结构的队列实现,新建队列,入队列,出队列,删除队列
掌握队列的思想及其存储实现。 2.掌握队列的常见算法的程序实现。 实验仪器 PC机,C++软件 实验步骤 #include #define MAXSIZE 100 typedef struct seqqueue { int data[MAXSIZE]; int front; int rear; }...
C# 数据结构实现队列,解决银行排队问题
数据结构 -- C语言版 -- 队列的部分实现代码,详细介绍参考数据结构--队列的系列博文。链接为:https://blog.csdn.net/songshuai0223/category_9742561.html。
队列,数据结构,c++,实现,自创,完全版
简单的数据结构单链队列的VC实现 仅供学习研究使用
C语言-数据结构-栈队列实现
Java语言编写的数据结构-队列实现,包括顺序队列和链队列。
数据结构栈和队列的课程指导上几实验代码 相抵部分
实验目的:熟练掌握循环队列的基本操作(入队列、出队列、取对头元素等) 实验内容:循环队列中的基本操作的实现...1、 以队列的顺序存储结构来实现; 2、 所有基本操作均应该以函数的形式表示; 3、 要有运行结果。
数据结构——队列实现银行排队
数据结构的队列程序 用C++语言实现,经过正确编译的
数据结构中队列的实现,有注释,欢迎提出修改意见
数据结构双向队列实验 用数组和链表实现的。
队列实现,数据结构作业练习参考,Java实现,环境eclipes1.8
队列的顺序定义,队列的调用算法等,队列的模板类及其实现
数据结构中队列的操作很重要,这是本人用C语言编写的程序绝对原创!不能说经典但很实用!!
主要实现了数据结构链队列的基本操作,CPP完美运行无错误。