首页 > 代码库 > 链队列的C++实现
链队列的C++实现
#include<iostream> using namespace std; //节点类 template<class T> struct QNode { T data; QNode *next; }; //队列类 template<class T> struct LinkList { QNode<T> * front; QNode<T> * rear; size_t size; }; //构造一个空队列 template<class T> void InitQueue(LinkList<T> & que) { que.front = (QNode<T> *)malloc(sizeof(QNode<T>)); if(!que.front) exit(0); que.size = 0; que.rear = que.front; que.rear->next = 0; } //销毁队列 template<class T> void DestroyQueue(LinkList<T>& que) { QNode<T> * p = que.front->next; free(que.front); while(p != 0) { que.front = p->next; free(p); p = que.front; } } //清空队列 template<class T> void ClearQueue(LinkList<T>& que) { QNode<T> * p = que.front->next; while(p != 0) { que.rear = p->next; free(p); p = que.rear; } que.rear = que.front; que.front->next = 0; que.size = 0; } //返回队列的长度 template<class T> int QueueLength(LinkList<T>& que) { return que.size; } //返回队列的队首元素 template<class T> T GetHead(LinkList<T>& que) { return que.front->next->data; } //元素入队 template<class T> void EnQueue(LinkList<T>& que,T t) { QNode<T> *p = (QNode<T>*)malloc(sizeof(QNode<T>)); if(!p) exit(0); p->data = http://www.mamicode.com/t;>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。