队列-链表形式
来源:互联网 发布:淘宝下单与发货时间 编辑:程序博客网 时间:2024/05/19 18:38
编写一个程序,实现链队的各种基本运算(假设队列中元素类型为char),并在此基础上
设计一个程序,完成如下功能:
(1)初始化队列q;
(2)判断链队q是否非空;
(3)依次进队a,b,c;
(4)出队一个元素,并输出该元素;
(5)输出链队q的元素个数;
(6)依次进链队元素d,e,f;
(7)输出链队q的元素个数;
(8)输出出队序列;
设计一个程序,完成如下功能:
(1)初始化队列q;
(2)判断链队q是否非空;
(3)依次进队a,b,c;
(4)出队一个元素,并输出该元素;
(5)输出链队q的元素个数;
(6)依次进链队元素d,e,f;
(7)输出链队q的元素个数;
(8)输出出队序列;
(9)释放队列。
<span style="font-size:18px;">#include <iostream>using namespace std;typedef char ElemType;typedef struct qnode{ElemType data;struct qnode *next;}QNode; typedef struct{QNode *front;QNode *rear;}LiQueue;void InitQueue(LiQueue * &q){ //初始化队列 q= new LiQueue;q->front = q->rear = NULL;} bool QueueEmpty(LiQueue * &q){ //判断队列是否为空 return (q->rear==NULL);}void enQueue(LiQueue * &q,ElemType e){ //进队列 QNode *p;p = new QNode;p->data = e;p->next = NULL;if(q->rear==NULL)q->front=q->rear=p;else{q->rear->next = p;q->rear = p;} }bool deQueue(LiQueue * &q,ElemType &e){ //出队列 QNode *t;if(q->rear == NULL)return false;t = q->front;if(q->front == q->rear)q->front = q->rear = NULL;else q->front=q->front->next;e=t->data;delete(t);return true;} int QueueLength(LiQueue *&q){ //计算链队长度 QNode *p = q->front;int length=0;while(p!=NULL){length++;p = p->next;}return (length);}/*void PrintQueue(LiQueue *&q){ //打印链队 QNode *p = q->front;while(p!=NULL){cout<<p->data<<" ";p=p->next;}}*/void DestroyQueue(LiQueue * &q){ //销毁链队 QNode *p = q->front,*r;if(p!=NULL){r=p->next;while(r!=NULL){delete(p);p=r; r = p->next;}} delete(p);delete(q);}int main(){LiQueue *q;ElemType e;InitQueue(q);if(QueueEmpty(q))cout<<"链队为空"<<endl; else cout<<"链队不为空"<<endl; enQueue(q,'a');enQueue(q,'b');enQueue(q,'c');deQueue(q,e);cout<<"第一次出队的元素:"<<e<<endl;cout<<"The length 1: "<<QueueLength(q)<<endl;//PrintQueue(q);enQueue(q,'d');enQueue(q,'e');enQueue(q,'f');cout<<"The length 2: "<<QueueLength(q)<<endl;while(q->front!=NULL){QNode *p = q->front;deQueue(q,e);cout<<e<<" "; p=p->next;}DestroyQueue(q);return 0;}</span>
0 0
- 队列-链表形式
- 队列(链表形式)实现_c++
- 二叉树1:广义表形式生成二叉链表形式,利用队列输出层次结构
- 【第五节】Java代码实现队列----【链表的存储形式】
- 队列的链表形式的实现,实现了部分功能,该链表不包含头结点
- 队列的顺序实现,包括在链表形式实现中的所有功能
- 栈--链表形式
- 数组形式链表
- JAVA实现最简单的双向链表、队列与栈(内部使用链表形式存储)
- 队列--链表队列
- 其他形式的链表
- 关于队列(数组队列,链表队列,循环队列)
- 队列的顺序表示形式和实现
- 队列(数组形式)实现_c++
- 以队列的形式使用共享内存
- android 队列形式播放提示语音
- 循环队列的几种形式
- 几种形式队列的实现
- TimeUnit是什么?
- JS autocomplete({})自动完成
- android图像处理及特效处理收集
- 【JZOJ3780】Magical GCD
- 工作流系统之二十九 详解工作流实例的一次流转
- 队列-链表形式
- UVA 1481 Genome Evolution(高效算法优化)
- 小白日记31:kali渗透测试之Web渗透-扫描工具-Arachni
- Python - 静态页面抓取(抓取‘糗事百科’段子)
- 第八周项目1 -建立顺序串的算法库
- [刷题]算法竞赛入门经典(第2版) 5-14/UVa1598 - Exchange
- 工作流系统之三十 流程的静态分支与动态分支
- 一些重要网站链接
- 观察到一种光盘加密的方法