本题要求实现一个函数out_sequeue(c_sequeue *q, datatype *x),该函数的作用是将循环队列q中的队首元素出队,并将其值赋给变量x。如果出队成功,则返回1;否则返回-1。怎么写代码
时间: 2024-05-29 16:12:46 浏览: 58
可以这样写:
int out_sequeue(c_sequeue *q, datatype *x) {
if (q->front == q->rear) { // 队列为空
return -1;
}
*x = q->data[q->front]; // 取出队首元素
q->front = (q->front + 1) % MAXSIZE; // 队首指针后移
return 1;
}
其中,c_sequeue 是循环队列的结构体,datatype 是队列元素数据类型,MAXSIZE 是循环队列的最大长度。函数的返回值为1表示出队成功,返回值为-1表示出队失败。
相关问题
本题目要求out_sequeue (c_sequeue *q , datatype *x)函数将 出循环队列的值送给变量x。出队成功返回1,否则返回-1。
本题要求实现一个函数out_sequeue(c_sequeue *q, datatype *x),该函数的作用是将循环队列q中的队首元素出队,并将其值赋给变量x。如果出队成功,则返回1;否则返回-1。
#include <stdio.h> #include <malloc.h> #define MAXSIZE 1024 typedef int datatype; typedef struct { datatype data[MAXSIZE]; /*数据的存储区*/ int front,rear; /*队头队尾指针*/ int num; /*队中元素的个数*/ }c_SeQueue; /*循环队*/ c_SeQueue* Init_SeQueue() { c_SeQueue *q; q=(c_SeQueue*)malloc(sizeof(c_SeQueue)); q->front=q->rear=MAXSIZE-1 ; q->num=0; return q; } int Empty_SeQueue(c_SeQueue *q) { if ( q->num==0 ) return 1; else return 0; }
这段代码定义了一个循环队列c_SeQueue,其中包含了队列的存储区data,队头指针front,队尾指针rear,队列中元素的个数num。
函数Init_SeQueue()用来初始化一个空的队列,并返回队列指针。
函数Empty_SeQueue()用来判断队列是否为空,如果队列中元素的个数为0,则返回1,否则返回0。
阅读全文