首页 > 代码库 > 链式队列的实现
链式队列的实现
链式队列数据结构如下:
typedef struct qnode{ ElemType data; struct qnode* next; //指向下一节点指针 }QNode; typedef struct{ QNode* front; //队首指针 QNode* rear; //队尾指针 }ListQueue;
实现以下函数:
void InitQueue(ListQueue* &q); //初始化队列 void ClearQueue(ListQueue* &q); //清空队列 int QueueEmpty(ListQueue* q); //判断队列是否为空 int QueueLength(ListQueue* q); //求队列长度 void enQueue(ListQueue* &q,ElemType e); //元素入队 int deQueue(ListQueue* &q,ElemType &e); //元素出队 void DispQueue(ListQueue* q); //输出队列
具体实现代码:
#include <stdio.h> #include <stdlib.h> #include <iostream> #define ElemType int #define MaxSize 5 #define SWAP(A,B) a^=b;b^=a;a^=b #define GET_ARRAY_LENGTH(array) (sizeof(array)/sizeof(array[0])) using namespace std; typedef struct qnode{ ElemType data; struct qnode* next; //指向下一节点指针 }QNode; typedef struct{ QNode* front; //队首指针 QNode* rear; //队尾指针 }ListQueue; void InitQueue(ListQueue* &q); //初始化队列 void ClearQueue(ListQueue* &q); //清空队列 int QueueEmpty(ListQueue* q); //判断队列是否为空 int QueueLength(ListQueue* q); //求队列长度 void enQueue(ListQueue* &q,ElemType e); //元素入队 int deQueue(ListQueue* &q,ElemType &e); //元素出队 void DispQueue(ListQueue* q); //输出队列 void InitQueue(ListQueue* &q){ q=(ListQueue* )malloc(sizeof(ListQueue)); q->front=q->rear=NULL; } void ClearQueue(ListQueue* &q){ QNode* p=q->front; QNode* r; while(p->next!=NULL){ r=p->next; free(p); p=r; } free(p); free(q); } int QueueEmpty(ListQueue* q){ return (q->front==NULL); } int QueueLength(ListQueue* q){ QNode* p=q->front; int count=0; while(p!=NULL){ p=p->next; count++; } return count; } void DispQueue(ListQueue* q){ QNode* p=q->front; while(p!=NULL){ cout<<p->data<<" "; p=p->next; } cout<<endl; } void enQueue(ListQueue* &q,ElemType e){ QNode* add=(QNode* )malloc(sizeof(QNode)); add->data=http://www.mamicode.com/e;>
运行结果:
链式队列的实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。