c语言队列操作

具体如何使用队列操作
getFirst
addLast
isFull
等函数,是不是要include queue.h
??

pq->rear->next
=
pnew这个代码从队列的尾部增加新节点,
然后pq->rear
=
pnew更新队列尾部指针。队列的数据结构形式就是由一个头front指针,一个尾rear指针来表征,items的设计是用空间换时间,涉及队列大小的操作会非常方便。
队列的特征是先进先出,你给出的链式实现,其实就跟一个链表一样,链表的添加删除如果能理解了,队列只是链表的元素增加/删除
按先进先出特点的一种实现。
但对于队列来说,实现方式不是重点,先进先出的性质才是重点,这在实际应用中很多,比如排队叫号。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-02-04
先定义队列元素的类型,例如:
typedef struct
{ datatype data[maxsize]; //队列的存储空间 datatype是数据类型,可以定义为int、char等,自己定义
int front,rear; //队头,队尾指针
}squeue,*squlink;

再定义你说的那些函数,之后就可以使用这些函数了,比如可以这样定义:

int addLast(squlink Q,datatype e) //元素e进队
{ if((Q->rear+1)%maxsize==Q->front){ ERROR(Q); return(1);}//队满
else { Q->rear=(Q->rear+1)%maxsize;//maxsize是队列的长度
Q->data[Q->rear]=e; return(0);} }

datatype getFirst(squlink Q) //出队 datatype是数据类型
{ if(EmptyQueue(Q)) return(NULL); //队空
else {Q->front=(Q->front+1)%maxsize;
return(Q->data[Q->front]);} }

int isFull(squlink Q)
{
if((Q->rear+1)%maxsize==Q->front){ ERROR(Q); return(1);//队满
else return 0;
}本回答被提问者采纳
第2个回答  2009-04-25
数据结构上的 函数自己写 ,呵呵 我也在学这个呢 好好学吧,以后会用到的。
第3个回答  2009-04-25
没见过这个函数啊 ,你是不是在学数据结构啊 这个是要你自己定义的啊

C语言消息队列
发送端首先申请Key,使用msgget函数创建或打开消息队列。然后使用msgsnd函数向消息队列发送消息。该函数接受消息队列ID、消息缓冲区地址、消息正文长度以及标志位参数。当使用MSG_NOWAIT标志位时,msgsnd函数在消息队列满时将不等待,而是立即返回。接收端从消息队列中接收消息使用msgrcv函数。该函数也需要消息队列...

C语言中,队列是什么意思,有什么用途
队列一种可以实现“先进先出”的存储结构,即“一端入,一端出”,队首(front)出队,队尾(rear)入队,若front指向队首,则rear指向队尾最后一个有效元素的下一个元素;若rear指向队尾,则front指向队首第一个有效元素的下一个元素。队列特殊之处在于它只允许在表的前端(front)进行删除操作,而在...

用C语言编写队列的各种基本操作,我不是非常明白:注释里有些问题:请大家...
ont)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 在队列这种数据结构中,最先插入在元素将是最先被删除;反之最后插入的元素将最后被删除,因此队列又称为“先进先出”(FIFO—first in first out)...

c语言队列操作
pq->rear->next = pnew这个代码从队列的尾部增加新节点,然后pq->rear = pnew更新队列尾部指针。队列的数据结构形式就是由一个头front指针,一个尾rear指针来表征,items的设计是用空间换时间,涉及队列大小的操作会非常方便。队列的特征是先进先出,你给出的链式实现,其实就跟一个链表一样,链表的...

计算机c语言中什么是栈和队列
删除这一端为栈顶,另一端称为栈底。表中无元素时为空栈。栈的修改是按后进先出的原则进行的,栈又称为LIFO表。队列是一种运算受限的线性表,插入在表的一端进行,而删除在表的另一端进行,允许删除的一端称为队头,允许插入的 一端称为队尾,队列的操作原则是先进先出的,又称作FIFO表。

C语言,环形队列
环形队列以数组形式构建,包含读位置、写位置与长度三个关键参数。数组长度为5,读写位置指示数据在数组中的位置。若读写位置相同,环形队列为空。当写入数据达到数组长度时,队列被认为已满。向队列写入数据时,更新写位置。读取数据后,更新读位置。若写位置超过数组长度,通过取模运算找到新写入数据的...

数据结构C语言描述的链队列的基本操作(初始化,判空,入队,出队,取对头...
} \/\/出队 int deQueue( LiQueue *&q,ElemType &e){QNode *t;if(q->rear==NULL)return 0;t=q->front;if(q->front==q->rear)q->front=q->rear=NULL;else q->front=q->front->next;e=t->data;break;free(t);return 1;} \/\/取队头 输出队列所有数就是出队 ...

C语言的队列如何实现和表示
我能想到的有两种方法(假设队列元素都是int)一,用链表的方法 struct A { int n;struct A *a;} *p,*head,*rear;head=rear=NULL;\/*头指针,尾指针*\/ 添加元素:p=(struct A*)malloc(sizeof(struct A));...给新元素赋值...;rear->a=p;rear=p;当然添加第一个元素的时候要给head赋值...

C语言中链表与队列有很么区别
链表在插入和删除操作上通常更为高效,而队列则在读取操作上表现更佳。总的来说,链表与队列在C语言中有着各自的优势和适用范围,开发者在选择使用哪种数据结构时,需要根据具体的应用场景来决定。链表的灵活性和动态性使其在需要频繁修改数据结构的应用中更加适用;而队列的先进先出特性则使其在处理任务...

二级c语言,队列、循环队列是什么?
1、队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。2、循环队列是将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列。 在顺序队列中,当队尾...

相似回答