• 线性表(队列)


    队列是一种操作受限的线性表,插入(入队)的一端为队尾,删除(出队)的一端是队头。队列每次入队的元素总是顺序出队,所是先进先出。

    队列的基本运算:

    • 置空队列
    • 判断队空
    • 入队
    • 获取头元素
    • 出队

    队列的存储方式:顺序循序队列和链队列和循环链队列。

    #include <stdio.h>
    #include <stdlib.h>
    
    #define QueueSize 100
    
    typedef char DataType;
    /**
    **循序队列 
    **/ 
    typedef struct {
        DataType data[QueueSize];
        int front, rear;
    }CirQueue;
    /**
    ** 置空队列 
    **/
    void InitQueue(CirQueue *Q) {
        Q->front = Q->rear = 0; 
    } 
    
    /**
    **队列空 
    **/
    int QueueEmpty(CirQueue *Q) {
        return Q->rear == Q->front;
    }
    
    /**
    **队列满 
    **/ 
    int QueueFull(CirQueue *Q) {
        return (Q->rear + 1) % QueueSize == Q->front;
    }
    
    /**
    **入队列
    **/
    void EnQueue(CirQueue *Q, DataType x) {
        if(QueueFull(Q)) {
            printf("Queue overflow
    ");
        } else {
            Q->data[Q->rear] = x;
            Q->rear = (Q->rear + 1) % QueueSize;
        }
    } 
    
    /**
    **取头元素 
    **/
    DataType GetFront(CirQueue *Q) {
        if (QueueEmpty(Q)){
            printf("Queue empty
    ");
            exit(0);
        } else
            return Q->data[Q->front];
    }
    /**
    **出队列 
    **/
    DataType DeQueue(CirQueue *Q) {
        DataType x;
        if(QueueEmpty(Q)){
            printf("Queue empty
    ");
            exit(0);
        } else {
            x = Q->data[Q->front];
            Q->front = (Q->front + 1) % QueueSize;
            return x;
        }
    }
    View Code
  • 相关阅读:
    Java基本数据类型转换
    Java中的数据类型
    Java常见关键字
    HashMap源码分析(jdk 8)
    函数参数
    存储盘在系统中对应的naa号
    Python处理文本换行符
    Python文件操作中的方法:.write()换行
    此示例示意标准输出函数print的用法
    主机端查看到的wwpn 不是以:分割解决办法
  • 原文地址:https://www.cnblogs.com/Python-233/p/15084889.html
Copyright © 2020-2023  润新知