zoukankan      html  css  js  c++  java
  • c语言实现队列

    用数组或者链表实现队列,先进先出

    queue.h

    //
    // Created by gxf on 2020/3/8.
    //
    
    #ifndef UNTITLED_QUEUE_H
    #define UNTITLED_QUEUE_H
    
    void initQueue();
    void enqueue(int data);
    int dequeue();
    int isFull();
    int isEmpty();
    void destroy();
    void printQueue();
    
    #endif //UNTITLED_QUEUE_H
    

    queue.c

    //
    // Created by gxf on 2020/3/8.
    //
    #include "queue.h"
    #include <stdio.h>
    #include <stdlib.h>
    
    int front = 0;
    int rear = 0;
    int *queue = NULL;
    int length = 100;
    int size = 0;
    
    
    void initQueue() {
        queue = malloc(sizeof(int) * length);
    }
    
    void enqueue(int data) {
        if (!isFull()) {
            queue[rear] = data;
            rear = (rear + 1) %length;
            size ++;
        }
        else
            printf("queue is full
    ");
    }
    
    int dequeue() {
        if (!isEmpty()) {
            int res = queue[front];
            front = (front + 1) % length;
            size --;
            return res;
        }
        printf("queue is empty
    ");
    }
    
    int isFull() {
        if (size == length)
            return 1;
        return 0;
    }
    
    int isEmpty() {
        if (size == 0)
            return 1;
        return 0;
    }
    
    void destroy(){
        if (queue)
            free(queue);
    }
    
    void printQueue() {
        while (!isEmpty()) {
            printf("%d ", dequeue());
        }
        printf("
    ");
    }
    

    main.c

    //
    // Created by gxf on 2020/3/8.
    //
    
    #include "queue.h"
    
    int main() {
        int a[5] = {4, 9, 2, 3, 1};
        initQueue();
        for (int i =0; i < sizeof(a) / sizeof(int); i++) {
            enqueue(a[i]);
        }
        printQueue();
        destroy();
        
        
        return 0;
    }
    

      

  • 相关阅读:
    畅通工程续 dijkstra
    能量项链 区间dp
    机器人军团
    skiing
    数论知识
    灯泡游戏
    60. 第k个排列
    17. 电话号码的字母组合
    101. 对称二叉树
    144. 二叉树的前序遍历
  • 原文地址:https://www.cnblogs.com/luckygxf/p/12444405.html
Copyright © 2011-2022 走看看