当前位置:编程学习 > C/C++ >>

队列的数组实现

对于每一个队列数据结构,我们保留一个数组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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,