C++编程练习(6)----“实现简单的队列的链式存储结构“
队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出。简称链队列。
实现代码如下:
/* LinkQueue.h 头文件 */
#include<iostream>
#define OK 1
#define ERROR 0
typedef int QElemType;
typedef int Status; class QNode{
public:
QNode():data(0),next(NULL) {}
QElemType data;
QNode *next;
}; class LinkQueue{
public:
LinkQueue() {front=new QNode;rear=new QNode;front=rear;}
Status EnQueue(QElemType e); /*入队操作*/
Status DeQueue(QElemType *e); /*出队操作*/
Status ShowQueue() const;
private:
QNode *front,*rear; /*队头、队尾指针,队头不保存元素,只起头结点作用,当front==rear时,队列为空*/
}; Status LinkQueue::EnQueue(QElemType e)
{
QNode *p=new QNode;
if(!p)
return ERROR;
p->data=e;
p->next=NULL;
rear->next=p;
rear=p;
return OK;
} Status LinkQueue::DeQueue(QElemType *e)
{
if(rear==front) /*空队列*/
return ERROR;
QNode *p=new QNode;
if(!p)
return ERROR;
p=front->next;
*e=p->data;
front->next=p->next;
if(rear==p)
rear=front;
delete p;
return OK;
} Status LinkQueue::ShowQueue() const
{
if(rear==front)
{
std::cout<<"空队列"<<std::endl;
return ERROR;
}
QNode *p=new QNode;
if(!p)
return ERROR;
std::cout<<"队列从队头至队尾内容依次为:";
p=front->next;
while(p)
{
std::cout<<p->data<<" ";
p=p->next;
}
std::cout<<std::endl;
return OK;
}
C++编程练习(6)----“实现简单的队列的链式存储结构“的更多相关文章
- C++编程练习(4)----“实现简单的栈的链式存储结构“
如果栈的使用过程中元素数目变化不可预测,有时很小,有时很大,则最好使用链栈:反之,如果它的变化在可控范围内,使用顺序栈会好一些. 简单的栈的链式存储结构代码如下: /*LinkStack.h*/ #i ...
- 队列(FIFO)—循环队列、队列的链式存储
1 队列的定义 队列是只允许在一端(队尾)进行插入操作,而在另一端(队头)进行删除操作的线性表. 2 队列的特点 1)先进先出是队列最大的特点,是应用中非常常见的模型,例如排队: 2)队列也属于线性表 ...
- C++编程练习(2)----“实现简单的线性表的链式存储结构“
单链表采用链式存储结构,用一组任意的存储单元存放线性表的元素. 对于查找操作,单链表的时间复杂度为O(n). 对于插入和删除操作,单链表在确定位置后,插入和删除时间仅为O(1). 单链表不需要分配存储 ...
- 队列的链式存储方式的实现(Java语言描述)
链队列的结构示意图: 先进先出. QueueInterface.java//操作方法接口 package 队列的实现; public interface QueueInterface { public ...
- 队列(链式存储)C++模板实现
#include <iostream> using namespace std; //队列结点类 template <typename T> class QueueNode{ ...
- 队列(链式存储)JAVA代码
publicclassLinkQueue<T>{ //结点类 publicclassNode{ public T data; pub ...
- 数据结构算法C语言实现(十一)--- 3.4队列的链式表示和实现
一.简介 FIFO. 二.头文件 //3_4_part1.h /** author:zhaoyu email:zhaoyu1995.com@gmail.com date:2016-6-9 note:r ...
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...
- 队列链式存储 - 设计与实现 - API函数
队列相关基础内容参我的博文:队列顺序存储 - 设计与实现 - API函数 队列也是一种特殊的线性表:可以用线性表链式存储来模拟队列的链式存储. 主要代码: // linkqueue.h // 队列链式 ...
随机推荐
- Linux系统开机启动流程
(来源学习Linux时,自己做的笔记) Linux系统有7个运行级别(runlevel)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限, ...
- 控制流之break
break语句是用来 终止 循环语句的,即哪怕循环条件没有称为False或序列还没有被完全递归,也停止执行循环语句.一个重要的注释是,如果你从for或while循环中 终止 ,任何对应的循环else块 ...
- Java加密解密字符串
http://www.cnblogs.com/vwpolo/archive/2012/07/18/2597232.html Java加密解密字符串 旧文重发:http://www.blogjava ...
- (中等) POJ 1191 棋盘分割,DP。
Description 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘.(每次 ...
- (简单) POJ 3468 A Simple Problem with Integers , 线段树+区间更新。
Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. On ...
- 主流IOC框架测验(.NET)
上一篇中,我简单介绍了下Autofac的使用,有人希望能有个性能上的测试,考虑到有那么多的IOC框架,而主流的有:Castle Windsor.微软企业库中的Unity.Spring.NET.Stru ...
- APK的反编译
有秘密的地方就有见不得光的东西,我讨厌这些,所以对于某一个XX圈APP极其反感,感觉就像一个色情网站 一.ApkTool的使用 看了几个教程,自己下载的好像总是不完整,下载包解压后一个没有aapt.e ...
- UVa 10670 - Work Reduction
题目大意:对n份文件进行处理使其减少到m份,有l个机构可供选择.每个机构提供两种方案:每减少一份收费a元,或者减少到文件数量的一半收费b元.根据各个机构收取费用进行排序. 很直接的题目,直接进行模拟就 ...
- 解開32位元Win 7記憶體4GB限制
解開32位元Win 7記憶體4GB限制: ReadyFor4GB 檔案下載:ReadyFor4GB https://sites.google.com/a/joytown.tw/bai-jia-zhi/ ...
- 6.UDP协议
1.UDP简要介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议. UDP数据报结构: UDP首部格式: ...