急求一循环队列的程序,用C#或者Pascal编写的均可

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:06:58
内容为:利用数组建立一个循环队列,从键盘读入m个整数,每读入一个整数就放入队列中,然后完成出队任务使得每次出队前先访问队头结点(即将队头结点的数据域值输出)。
步骤为:1)建立长度(容量)为m的空队,队列元素下标为1~m;设对头指针为front,队尾指针为bottom。
2)编写入队过程、出队过程和读队过程,注意设定判断队满、队空的条件;
3)上机调试,给定数据序列运行程序。假设要建立有8个元素的循环队列,队列容量m应该是多大?队头指针和队尾指针的值各是多少?
4)建立有8个元素的循环队列,然后出队,其结果是否符合“先进先出”的特征?
最好是Pascal写的,因为学计算机软件技术基础,但以前根本没有学过C#或是Pascal,所以麻烦高手指点,不胜感激!!

循环队列不是这样用的吧,应该是在入队出队操作都有的情况下用的(不是先全入队,再出队),大概就是出队后空出来的空间可以留着以后进队用。
初始队空:
front=bottom=1;
进队大概是:
void push(int x )
{
bottom++;
if (bottom>m) bottom=1;
if (front==bottom)
{
cout<<"Full!"<<endl;
return;
}
queue[bottom]=x;
}
出队大概是:
int pop()
{
if (front==bottom)
{
cout<<"Empty!"<<endl;
return 0;
}
front++;
if (front>m) front=1;
return queue[front];
}
这是基础的,细节自己处理

关注.

我不会

能详细点么?给出样例数据之类的 ,我明白题意的话或许能写一份。