栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构-顺序存储实现队列(王道自写笔记)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构-顺序存储实现队列(王道自写笔记)

#include
#define MaxSize 10
typedef struct
{
    int data[MaxSize];
    int front,rear;
}SqQueue;

void InitQueue(SqQueue &Q); 
bool QueueEmpty(SqQueue Q);
bool EnQueue(SqQueue &Q,int x);
int DeQueue(SqQueue &Q,int &x);
int GetHead(SqQueue Q,int &x);

//初始化队列
void InitQueue(SqQueue &Q)
{
    //初始化时队头,队尾指针指0
    Q.rear=Q.front=0; 
}

bool QueueEmpty(SqQueue Q)
{
    if(Q.rear==Q.front)
        return true;
    else
    {
        return false;
    }
}


//入队
bool EnQueue(SqQueue &Q,int x)
{
    if((Q.rear+1)%MaxSize==Q.front)   //队满则报错 
    {
        return false;
    }
    Q.data[Q.rear]=x;
    Q.rear=(Q.rear+1)%MaxSize;
    return true;
}

//出队(删除一个队头元素,并用x返回) 
int DeQueue(SqQueue &Q,int &x) 
{
    if(Q.rear==Q.front)
    {
        return 9999;     //判断队空,若队空则返回9999 
    }
    x=Q.data[Q.front];
    Q.front=(Q.front+1)%MaxSize;
    return x;
}


//获得队头元素的值,用x返回 
int GetHead(SqQueue Q,int &x)
{
    if(Q.rear==Q.front)
    {
        return 9999;   //判断队空,若队空则返回9999 
    }
    x=Q.data[Q.front];
    return x;
}

int main(void)
{
    SqQueue Q;
    int x=0;
    InitQueue(Q); 
    QueueEmpty(Q);
    EnQueue(Q,3);
    EnQueue(Q,4);
    EnQueue(Q,5);
    printf("%dn",DeQueue(Q,x));
    printf("%dn",DeQueue(Q,x));
    printf("%dn",DeQueue(Q,x));
    GetHead(Q,x);
    return 0;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号