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

      

  • 相关阅读:
    hdu 4407 Sum 容斥+当前离线
    2014第11周二开发记
    2014第11周一word样式
    2014第10周日
    2014第10周六
    2014第10周杂想
    2014第10周四项目开发回顾提纲
    2014第10周三高效程序员的习惯
    2014第10周二程序员思维
    2014第10周一
  • 原文地址:https://www.cnblogs.com/luckygxf/p/12444405.html
Copyright © 2011-2022 走看看