zoukankan      html  css  js  c++  java
  • 数据结构循环队列——数组模拟实现

    数据结构模板——存档用

    #include<stdio.h>
    #include<stdlib.h>
    #define MAXSIZE 50///队列最大可容纳元素数量
    typedef struct
    {
        int data[MAXSIZE];///存储数组
        int front;///队首
        int rear;///队尾
    }SqQueue;
    int visit(int c)///输出元素
    {
        printf("%d ",c);
        return 1;
    }
    ///初始化一个空队列Q
    int InitQueue(SqQueue *Q)
    {
        Q->front=0;
        Q->rear=0;
        return  1;
    }
    ///将Q清为空队列
    int ClearQueue(SqQueue *Q)
    {
        Q->front=Q->rear=0;
        return 1;
    }
    ///若队列Q为空队列,则返回1,否则返回0
    int QueueEmpty(SqQueue Q)
    {
        if(Q.front==Q.rear) return 1;
        else return 0;
    }
    
    ///返回Q的元素个数,也就是队列的当前长度
    int QueueLength(SqQueue Q)
    {
        return  (Q.rear-Q.front+MAXSIZE)%MAXSIZE;
    }
    ///若队列不空,则用e返回Q的队头元素,并返回1,否则返回0
    int GetHead(SqQueue Q,int *e)
    {
        if(Q.front==Q.rear) return 0;
        *e=Q.data[Q.front];
        return 1;
    }
    ///若队列未满,则插入元素e为Q新的队尾元素
    int EnQueue(SqQueue *Q,int e)
    {
        if ((Q->rear+1)%MAXSIZE == Q->front) return 0;
        Q->data[Q->rear]=e;
        Q->rear=(Q->rear+1)%MAXSIZE;
        return 1;
    }
    ///若队列不空,则删除Q中队头元素,用e返回其值
    int DeQueue(SqQueue *Q,int *e)
    {
        if (Q->front == Q->rear) return 0;
        *e=Q->data[Q->front];
        Q->front=(Q->front+1)%MAXSIZE;
        return  1;
    }
    ///从队头到队尾依次对队列Q中每个元素输出
    int QueueTraverse(SqQueue Q)
    {
        int i;
        i=Q.front;
        while((i+Q.front)!=Q.rear)
        {
            visit(Q.data[i]);
            i=(i+1)%MAXSIZE;
        }
        printf("
    ");
        return 1;
    }
    int main()
    {
        int j,i=0,l;
        int d;
        SqQueue Q;///声明队列
        InitQueue(&Q);///初始化队列
        QueueEmpty(Q);///判空队列
        return 0;
    }
    
  • 相关阅读:
    [NOIP2010] 引水入城
    BZOJ 3038 线段树
    [Tyvj 1728]普通平衡树 5种姿势 (彩蛋)
    BZOJ 1588: [HNOI2002]营业额统计
    BZOJ 2141 排队 线段树套替罪羊
    BZOJ 3629 [JLOI2014] 聪明的燕姿 dfs
    P1546 [USACO3.1]最短网络 Agri-Net(洛谷)
    并查集详解+模板
    sync_with_stdio和cin.tie(0); cout.tie(0);
    拓扑排序详解
  • 原文地址:https://www.cnblogs.com/kuronekonano/p/11135826.html
Copyright © 2011-2022 走看看