谁能帮我把这些数据结构操作用C语言描述出来?谢了

来源:百度知道 编辑:UC知道 时间:2024/06/22 02:52:52
----循环队列的基本操作的算法描述----
操作1.status initqueue (sqqueue &q)
操作2.queuelength(sqqueue q)
操作3.status enqueue (sqqueue &q ,qelemtype e)
操作4.status dequeue (sqqueue &q qelemtype &e)

谁能帮我把这些数据结构操作用C语言描述出来?谢了

有个疑问
我记得C里面好像是没有引用类型这种东西的,但是楼主指明了是C不是C++,给的函数头里面又用了引用类型……不知道是我记错的还是怎么的,我C++用得多,对C不熟
我以下的答案当了C里面也有引用类型

假定对sqqueue结构以及status类型的定义如下:

struct sqqueue
{
int head,tail;
int count;
qelemtype list[1000];//qelemtype类型表示队列元素类型,必须事先按照程序的具体需要定义好
};

enum status
{
succeed,fail
};

用于进行队列操作的各函数如下:

status initqueue(sqqueue &q)
{
q.head=q.tail=0;
q.count=0;
return succeed;
}

int queuelength(sqqueue q)
{
return q.count;
}

status enqueue(sqqueue &q,qelemtype e)
{
if (q.count==1000) return fail;//队列已满,加入元素失败
else
{
q.list[q.tail]=e;
q.tail++;
if (q.tail==1000) q.tail=0;
q.count++;
return succeed;
}
}

status dequeue(sqqueue &q,qelemtype &e)
{
if (q.count==0) return fail;//队列为空,删除元素失败
else
{
e=q.list[q.head];