队列的入队,出队。显示队中元素是指怎么样的操作?

如题所述

我正好写了一个,一点分都没有,太打击我的积极性 了
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct qnode{ //存储结构
int data;
struct qnode *next;
}qnode,*queueptr;
typedef struct {
queueptr front ;
queueptr rear;
}linkqueue;
int initqueue(linkqueue &q) //建立空队列
{
q.rear =q.front =(queueptr)malloc(sizeof(qnode));
q.front ->next =0;
return 1;
}
int enqueue(linkqueue &q,int e) //插入元素
{
queueptr p;
p=(queueptr)malloc(sizeof(qnode));
p->data =e; p->next =0;
q.rear ->next =p;q.rear =p;
return 1;
}

int dequeue(linkqueue &q,int &e) //删除队列的尾元素
{
queueptr p;
p=(queueptr)malloc(sizeof(qnode));
p=q.front ->next ;
e=p->data ;
q.front ->next =p ->next ;
if(q.rear ==p)q.rear =q.front ;
free(p);
return 1;
}

int creatqueue(linkqueue &q,int n) //构造一个含n个元素的队列
{
int i=1,e=0;
for(;i<=n;i++)
{
cin>>e;
enqueue(q,e);
}
return 1;
}
int destoyqueue(linkqueue &q) // 销毁队列
{
while(q.front )
{
q.rear =q.front ->next ;
free(q.front );
q.front =q.rear ;
}
return 1;
}
int print(linkqueue q) //打印
{
int e=0;
while(q.rear!=q.front){
dequeue(q,e);cout<<e<<" ";
}
return 1;
}

void main()
{
int e=0;
linkqueue q;
initqueue(q);
creatqueue(q,5);
print(q);
cout<<endl;
dequeue(q,e);cout<<e<<" ";
print(q);
cout<<endl;

destoyqueue(q);

}

你自己稍微调试一下吧.是用的是链队列的表示方法
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-05-12
我正好写了一个,一点分都没有,太打击我的积极性

#include<iostream>
#include<malloc.h>
using
namespace
std;
typedef
struct
qnode{
//存储结构
int
data;
struct
qnode
*next;
}qnode,*queueptr;
typedef
struct
{
queueptr
front
;
queueptr
rear;
}linkqueue;
int
initqueue(linkqueue
&q)
//建立空队列
{
q.rear
=q.front
=(queueptr)malloc(sizeof(qnode));
q.front
->next
=0;
return
1;
}
int
enqueue(linkqueue
&q,int
e)
//插入元素
{
queueptr
p;
p=(queueptr)malloc(sizeof(qnode));
p->data
=e;
p->next
=0;
q.rear
->next
=p;q.rear
=p;
return
1;
}
int
dequeue(linkqueue
&q,int
&e)
//删除队列的尾元素
{
queueptr
p;
p=(queueptr)malloc(sizeof(qnode));
p=q.front
->next
;
e=p->data
;
q.front
->next
=p
->next
;
if(q.rear
==p)q.rear
=q.front
;
free(p);
return
1;
}
int
creatqueue(linkqueue
&q,int
n)
//构造一个含n个元素的队列
{
int
i=1,e=0;
for(;i<=n;i++)
{
cin>>e;
enqueue(q,e);
}
return
1;
}
int
destoyqueue(linkqueue
&q)
//
销毁队列
{
while(q.front
)
{
q.rear
=q.front
->next
;
free(q.front
);
q.front
=q.rear
;
}
return
1;
}
int
print(linkqueue
q)
//打印
{
int
e=0;
while(q.rear!=q.front){
dequeue(q,e);cout<<e<<"
";
}
return
1;
}
void
main()
{
int
e=0;
linkqueue
q;
initqueue(q);
creatqueue(q,5);
print(q);
cout<<endl;
dequeue(q,e);cout<<e<<"
";
print(q);
cout<<endl;
destoyqueue(q);
}
你自己稍微调试一下吧.是用的是链队列的表示方法

队列的入队,出队。显示队中元素是指怎么样的操作?
int initqueue(linkqueue &q) \/\/建立空队列 { q.rear =q.front =(queueptr)malloc(sizeof(qnode));q.front ->next =0;return 1;} int enqueue(linkqueue &q,int e) \/\/插入元素 { queueptr p;p=(queueptr)malloc(sizeof(qnode));p->data =e; p->next =0;q.rear ->next ...

队列的adt定义
1. 入队(Enqueue):在队列的尾部添加一个元素。这是向队列中添加数据的主要方式,它保证了新添加的元素将按照添加的顺序在后续的操作中被处理。2. 出队(Dequeue):移除队列头部的元素,并返回该元素的值。这是从队列中获取数据的主要方式,它遵循FIFO原则,确保最早进入队列的元素最先被移除。3. ...

队列(queue)
队列是按照“先进先出”(FIFO)原则管理元素的数据结构。元素只能在队列的一端(队尾)加入,而在另一端(队首)移除。队列的主要特征如下:(1) FIFO原则:队列中的元素按照加入的顺序被移除。最先加入的元素最先被移除。(2) 双端操作:队列仅允许在队尾进行元素的插入操作(入队),而在队首进行...

专题篇|栈与队列详解
入队指将元素放入队尾,出队指将队首元素取出。队列的本质也是一个容器,它可以存储任何类型的数据,但是队列的大小也是固定的。 队列也有很多应用场景,比如操作系统中的进程调度。操作系统中有很多进程需要运行,操作系统通过队列来管理这些进程。 当一个进程需要运行时,就将它加入到队列的队尾,当操作系统分配到一个 CP...

队列的定义
队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。队列的基本运算 (1)初始化队列:Init_...

简单入门 —— 队列
队列是计算机科学中一种遵循先进先出(FIFO)原则的数据结构,其操作受到限制,主要涉及在队尾添加元素(入队)和从队头删除元素(出队)。队列在操作系统中有广泛应用,如进程调度、内存管理和磁盘管理。队列的基础操作包括:检测队列是否为空,读取队首元素(非出队操作,元素仍在队列),判断队列元素个...

我知道队基础知识怎么写
队列的基本操作包括入队、出队、查看队首元素以及判断队列是否为空。入队操作将新元素添加到队列的末尾,而出队操作则移除并返回队列开头的元素。查看队首元素允许用户检查队列的第一个元素但不移除它,而判断队列是否为空则用于在尝试执行出队操作之前检查队列中是否还有元素。段落三:队列的实际应用 队列...

队列计算机用语
在数组实现中,如Q[1…10],队头head指向实际队头前一个位置(如head=2时,队头元素是Q[3]),队尾tail指向实际队尾元素(如tail=8时,队列中元素为8-2=6)。在队列操作中,出队操作会将head指针加1,如head=2时出队,head变为3。入队则需要移动tail,如tail=8时新元素入队,tail变为9。

队列是什么
队列是一种线性表,它只允许在一端进行删除操作,而在另一端进行插入操作。这个特性也被称为“先进先出”。这意味着最先进入队列的元素会第一个离开队列。这种数据结构适用于需要跟踪事件顺序的应用场景。例如,在计算机操作系统中,队列常用于管理待执行的任务或事件。操作 队列的主要操作包括入队和出队...

excel队列
‘队列中当前元素的值 Public Value As Variant Queue类模块 在Queue类模块中,包含两个方法和一个属性。其中,Add方法在队列中添加元素,即执行入队操作;Remove方法移除队列中的元素,即执行出队操作;QueueEmpty属性判断队列是否为空。完整的代码如下:‘指向队列列首的指针 Dim qFront As QueueItem ‘...

相似回答