频道栏目
首页 > 程序开发 > 软件开发 > C++ > 正文
队列的数组实现
2012-10-16 16:57:30           
收藏   我要投稿

对于每一个队列数据结构,我们保留一个数组theArray以及位置front和back,他们代表队列的两端。我们还要记录实际存在于队列中的元素的个数

currentSize。

要enqueue元素x,可将currentSize和back增1,然后置theArray[back]=x。

要dequeue一个元素,可以置返回值为theArray[front],将currentSize减1,再将front增1.

只要front或back到达数组的尾端,就绕回到开头。这称为循环数组实现。
[cpp]  www.2cto.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; 

点击复制链接 与好友分享!回本站首页
相关TAG标签 队列 数组
上一篇:BB10 Cascades Beta3:如何更方便地查看qDebug()和console.log()信息
下一篇:杭电1042—— N!(大数乘法的应用!)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站