数据结构(十) 链队列的基本操作 ----入队列,出队列,判断队列是否为空

原创 2016年12月31日 19:02:05
//链队列的基本操作
 
#include <iostream>

using namespace std;

//节点的结构体
struct Node
{
	int data;
	struct Node *next;
};
//队列的结构体
struct queue
{
	struct Node * front;
	struct Node *rear;	
}; 
//队列的初始化操作
void initQueue(struct queue &Q)
{
	Q.front = new Node();
	Q.rear = Q.front;
	Q.front->next = NULL;
}
//队列的入队操作
void enQueue(struct queue &Q)
{
	struct Node *p;
	int data;
	cout<<"请输入入队列的数据:\n";
	cin>>data;
	p = new Node();
	p->data = data;
	p->next = NULL;
	Q.rear->next= p;
	Q.rear=p;
} 
//队列的出队操作
void DeQueue(struct queue &Q)
{
	struct Node *p;
	p = Q.front->next;
	cout<<"队列的数据为:\n";
	cout<<p->data;
	if(p==Q.rear)
	{
		Q.front=Q.rear;
	}
	else
	{
		Q.front->next = p->next;	
	}
	delete(p);
} 
//判断队列是否为空
void isEmpty(struct queue Q)
{
	if(Q.front==Q.rear)
	{
		cout<<"对列为空\n";
		exit(1);
	}
} 
int main()
{
	struct queue Q;
	initQueue(Q);
	enQueue(Q);
	DeQueue(Q);	
	isEmpty(Q);	
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

怎么判断循环队列是否为空?或者已经满了?

现有一个循环队列,其队头指针为 front,队尾指针为 rear,循环队列的总长度为 N,问怎么判断循环队列满了? 正确答案: D    front==rear front==rear...
  • You_are_my_dream
  • You_are_my_dream
  • 2017年03月29日 18:39
  • 5056

Java 集合深入理解(9):Queue 队列

什么是队列队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。队列有两种: 单队列 循环队列 单队列就是常见的队列, 每次添加元...
  • u011240877
  • u011240877
  • 2016年10月19日 16:45
  • 6091

数据结构-链队列的基本操作

#include #include #define OK 1 #define ERROR 0 using namespace std; typedef struct LNode { int dat...
  • Triple_WDF
  • Triple_WDF
  • 2017年09月22日 16:06
  • 222

C语言实现链队列的基本操作

这些都是之前所做的作业,这两天有时间就把它们放上来大家一起分享。
  • OnlyLove_KD
  • OnlyLove_KD
  • 2016年09月12日 09:27
  • 7461

数据结构-队列(queue)

队列(queue)是一种采用先进先出(FIFO)策略的抽象数据结构,它的想法来自于生活中排队的策略。顾客在付款结账的时候,按照到来的先后顺序排队结账,先来的顾客先结账,后来的顾客后结账。队列实现同栈的...
  • juanqinyang
  • juanqinyang
  • 2016年05月09日 16:51
  • 4925

【数据结构】队列的基本操作

队列的基本操作.cpp #include using namespace std; typedef int QElemType; typedef int Status; typedef struc...
  • qq_32353771
  • qq_32353771
  • 2015年11月10日 15:05
  • 1429

循环队列中判断队满与队空

在引用循环队列前,我们需要了解队列是如何线性实现的。 简单地讲,便是当队列为空时,front = rear = 0,每当插入元素尾指针+1,删除元素是头指针-1。但是,我们会发现一个问题,如上面...
  • u010429311
  • u010429311
  • 2016年04月02日 11:16
  • 6968

Java 集合深入理解(9):Queue 队列

什么是队列队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。队列有两种: 单队列 循环队列 单队列就是常见的队列, 每次添加元...
  • u011240877
  • u011240877
  • 2016年10月19日 16:45
  • 6091

队列与循环队列的判空与判满的条件

循环队列的一些基本操作 void InitQueue(SqQueue &Q) { // 构造一个空队列Q Q.base = (QElemType *)malloc(MAX_QSIZE...
  • qq_31214097
  • qq_31214097
  • 2015年10月25日 22:18
  • 3790

数据结构(六)循环队列的基本操作 入队 退队

队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。 采用空闲一个位置的方式,即N个元素空间的循环队列最多只能存放N-1个有效元素。这也是大多数教...
  • u014345282
  • u014345282
  • 2015年10月15日 08:46
  • 860
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构(十) 链队列的基本操作 ----入队列,出队列,判断队列是否为空
举报原因:
原因补充:

(最多只允许输入30个字)