队列的数组实现
对于每一个队列数据结构,我们保留一个数组theArray以及位置front和back,他们代表队列的两端。我们还要记录实际存在于队列中的元素的个数
currentSize。
要enqueue元素x,可将currentSize和back增1,然后置theArray[back]=x。
要dequeue一个元素,可以置返回值为theArray[front],将currentSize减1,再将front增1.
只要front或back到达数组的尾端,就绕回到开头。这称为循环数组实现。
[cpp] www.zzzyk.com
#include<stdio.h>
#define N 10
int front=0,back=-1,currentSize=0;
void enqueue(int *a,int m)
{
++back;
if(front==N)
front = 0;
if(back==N)
back = 0;
currentSize++;
a[back] = m;
}
int dequeue(int *a)
{
return a[front++];
currentSize--;
}
int main(int argc,char *argv[])
{
int a[N]={0};
int i;
for(i=0;i<N;i++)
enqueue(a,i);
enqueue(a,1);
// dequeue(a);
for(i=0;i<N;i++)
printf("%4d",a[i]);
return 0;
}
补充:软件开发 , C++ ,