循环链表实现队列
来源:互联网 发布:最基本的网络通信协议 编辑:程序博客网 时间:2024/05/21 11:42
#include<iostream>#define datetype intusing namespace std;struct QNode ///声明队列结点类型{datetype date;QNode *next;};struct Lqueue{QNode *rear;};///声明队列类型void initQueue(Lqueue &Q){Q.rear = new QNode;Q.rear->next = Q.rear;}bool emptyQueue(Lqueue &Q){return Q.rear->next->next == Q.rear->next ? 1 : 0;}void pushQueue(Lqueue &Q, datetype &x){QNode *p = new QNode;p->date = x; p->next = Q.rear->next;Q.rear->next = p;Q.rear = p;}datetype popQueue(Lqueue &Q){datetype x;QNode *p;p = Q.rear->next->next;///p要指向取下的结点x = p->date; ///保存结点数据if (p == Q.rear){///当队列中只有一个节点时 p结点出队后 要将队尾指针指向头节点Q.rear = Q.rear->next;Q.rear->next = p->next;}else Q.rear->next->next = p->next;delete(p);return x;}int main(){int n, a;Lqueue Q;initQueue(Q);cout << "请输入队列的元素数目" << endl;cin >> n;cout << "请输入每个结点的值" << endl;for (int i = 1; i <= n; i++){cin >> a;pushQueue(Q, a);}cout << "输出:" << endl;while (!emptyQueue(Q))cout << popQueue(Q) << endl;return 0;}
- 循环链表实现循环队列
- 链表实现循环队列
- 循环队列-链表实现
- 循环链表实现队列
- 循环链表实现队列
- 循环链表实现队列
- Java数组实现循环队列、Java链表实现队列
- 循环队列模版(链表实现)
- 循环队列的链表实现
- 用循环链表实现队列
- ArrayList链表实现循环队列
- 基于链表、数组实现队列、循环队列
- 循环链表队列
- 数据结构:双向链表实现队列与循环链表
- 数据结构---双向链表实现队列与循环链表
- 循环链表,栈,队列,链表实现
- 队列实现 (双向循环链表 C++)
- 队列—链表与循环数组实现
- Redis主从备份以及key的过期时间配置
- vector的用法
- 后缀表达式+栈的应用=四则表达式运算
- 单链表的实现
- C#控制台实现52张扑克牌的分法
- 循环链表实现队列
- CF 258A. Game With Sticks
- CF 258B. Sort the Array
- CF 261A. Pashmak and Garden
- stl-algorithm用法
- HDU 1505City Game
- 【问题解决】FragmentTabHost 底部菜单栏,切换Frgment时重新加载问题
- HDU 1087 Super Jumping! Jumping! Jumping!
- POJ 2533 LIS N2