zoukankan      html  css  js  c++  java
  • 队列

    #include <stdio.h>  
    #include "queue.h"


    int main(void)
    {
    SqQueue qu;
    ElemType e;

    InitQueue(&qu);
    printf("栈%s/n", (QueueEmpty(qu) == 0 ? "" : "不空"));
    printf("a进栈/n"); EnQueue(&qu, 'a');
    printf("b进栈/n"); EnQueue(&qu, 'b');
    printf("c进栈/n"); EnQueue(&qu, 'c');
    printf("d进栈/n"); EnQueue(&qu, 'd');
    printf("栈%s/n", (QueueEmpty(qu) == 1 ? "" : "不空"));
    GetHead(qu, &e);
    printf("栈顶元素:%c/n", e);
    printf("出栈次序:");

    while((QueueEmpty(qu))) //栈空返回0,否则返回-1
    {
    DeQueue(&qu, &e);
    printf("%c ", e);
    }
    printf("/n");

    return 0;
    }


    [cpp] view plaincopyprint?
    #ifndef QUEUE
    #define QUEUE

    #define QueueSize 100
    typedef char ElemType ;

    typedef struct
    {
    ElemType data[QueueSize];
    int front, rear;
    }SqQueue;

    void InitQueue(SqQueue *qu); //初始化队列

    int EnQueue(SqQueue *qu, ElemType x); //进队列算法

    int DeQueue(SqQueue *qu, ElemType *x); //出队列算法

    int GetHead(SqQueue qu, ElemType *x); //取对头元素

    int QueueEmpty(SqQueue qu); //判断对空算法



    #endif


    [cpp] view plaincopyprint?
    #include <stdio.h>
    #include "queue.h"

    /************************************************
    ** 函数名:void InitQueue(SqQueue *qu)
    ** 功能: 初始化队列
    ** 描述: 无
    ** 作者: 庞辉
    ************************************************
    */

    void InitQueue(SqQueue *qu)
    {
    qu->front = qu->rear = 0;
    }

    /************************************************
    ** 函数名:int EnQueue(SqQueue *qu, ElemType x)
    ** 功能: 进队列算法
    ** 描述: 队满返回-1
    ** 作者: 庞辉
    ************************************************
    */

    int EnQueue(SqQueue *qu, ElemType x)
    {
    if((qu->rear + 1) % QueueSize == qu->front)
    {
    return -1;
    }
    else
    {
    qu->rear = (qu->rear + 1) % QueueSize;
    qu->data[qu->rear] = x;

    return 0;
    }
    }

    /************************************************
    ** 函数名:int DeQueue(SqQueue *qu, ElemType *x)
    ** 功能: 出队列算法
    ** 描述: 队空返回-1
    ** 作者: 庞辉
    ************************************************
    */

    int DeQueue(SqQueue *qu, ElemType *x)
    {
    if(qu->rear == qu->front)
    {
    return -1;
    }
    else
    {
    qu->front = (qu->front + 1) % QueueSize;
    *x = qu->data[qu->front];

    return 0;
    }
    }

    /************************************************
    ** 函数名:int GetHead(SqQueue *qu, ElemType *x)
    ** 功能: 取对头元素
    ** 描述: 队空返回-1
    ** 作者: 庞辉
    ************************************************
    */

    int GetHead(SqQueue qu, ElemType *x)
    {
    if(qu.front == qu.rear)
    {
    return -1;
    }
    else
    {
    *x = qu.data[(qu.front + 1) % QueueSize];
    return 0;
    }
    }

    /************************************************
    ** 函数名:int QueueEmpty(SqQueue qu)
    ** 功能: 判断对空算法
    ** 描述: 队空返回-1,否则返回0
    ** 作者: 庞辉
    ************************************************
    */

    int QueueEmpty(SqQueue qu)
    {
    if(qu.rear == qu.front)
    {
    return -1;
    }
    else
    {
    return 0;
    }
    }



  • 相关阅读:
    centos7安装sshd
    Linux搭建redist-cluster集群
    nginx离线安装,反向代理,负载均衡
    2017/12/31Java基础学习——数组输出の通过Arrays.toString()方法
    Java代码编写规范
    2017/12/27java基础学习——遇到的不懂问题
    2017/12/23Java基础学习——如何通过记事本编写代码,并通过dos界面运行Java源文件
    ZOJ3880 Demacia of the Ancients【序列处理+水题】
    ZOJ3869 Ace of Aces【序列处理】
    ZOJ3872 Beauty of Array【DP】
  • 原文地址:https://www.cnblogs.com/pang123hui/p/2309940.html
Copyright © 2011-2022 走看看