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;
    }
    }



  • 相关阅读:
    struts2 错误:Dispatcher initialization failed java.lang.RuntimeException
    JavaScript如何实现拖放功能
    Javascript异步执行时要小心的变量作用域
    Javascript异步编程
    Origin null is not allowed by Access-Control-Allow-Origin
    eclipse spket插件 错误 Syntax error on token "(", FunctionExpressionHeader expected after this
    EL--Expression Language
    [Swift]LeetCode820. 单词的压缩编码 | Short Encoding of Words
    [Swift]LeetCode879. 盈利计划 | Profitable Schemes
    [Swift]LeetCode878. 第 N 个神奇数字 | Nth Magical Number
  • 原文地址:https://www.cnblogs.com/pang123hui/p/2309940.html
Copyright © 2011-2022 走看看