美文网首页
队列操作

队列操作

作者: 徐凯_xp | 来源:发表于2021-05-13 15:09 被阅读0次
#include <stdio.h>
#include <stdlib.h>

#define ERROR 0
#define OK 1

typedef struct Queue {
    int *data;
    int head, tail, length;
}Queue;

void init(Queue *q, int length) {
    q->data = (int *)malloc(sizeof(int) * length);
    q->length = length;
    q->head = 0;
    q->tail = -1;
}

int push(Queue *q, int element) {
    if(q->tail + 1 >= q->length) {
        return ERROR;
    }
    q->tail++;
    q->data[q->tail] = element;
    return OK;
}

void output(Queue *q) {
    for (int i = q->head; i <= q->tail; i++) {
        printf("%d ", q->data[i]);
    }
    printf("\n");
}

// 请在下面实现队首元素输出函数 front
int front(Queue *q){
    return q->data[q->head];
}

// 请在下面实现删除队首元素函数 pop
void pop(Queue *q){
    q->head++;
}

// 请在下面实现判断队列是否为空的函数 empty
int empty(Queue *q){
    return q->head > q->tail;  
}

void clear(Queue *q) {
    free(q->data);
    free(q);
}

int main() {
    Queue *queue = (Queue *)malloc(sizeof(Queue));
    init(queue, 100);
    for (int i = 1; i <= 10; i++) {
        push(queue, i);
    }
    output(queue);
    if(!empty(queue)){
        printf("%d\n",front(queue));
        pop(queue);
    }
    output(queue);
    clear(queue);
    return 0;
}

相关文章

  • IOS多线程总结

    目录 简述 NSThread GCD操作与队列异步操作并行队列同步操作并行队列同步操作串行队列异步操作串行队列队列...

  • iOS NSOperation笔记

    操作 NSOperation操作队列 NSOperationQueues主队列NSOperationQueue *...

  • 利用链表实现队列

    队列成员变量: 队列长度 队列头节点 队列尾节点队列方法: 队列包含元素个数 队列是否为空 进队操作 出队操作 d...

  • 蓝杯二十二

    /*队列操作问题描述?队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数...

  • 6.队列Queue

    目录:1.队列的定义2.队列的图解3.队列定义操作4.队列的实现 1.队列的定义 2.队列的图解 3.队列定义操作...

  • 堆和优先队列

    堆又称为优先队列,其通常包括至少两种操作:入队操作和出队操作。 普通队列与优先队列 普通队列:先进先出,后进后出优...

  • iOS主要知识总结--多线程之操作队列

    操作队列(NSOperation) 操作队列的几种常用方法 1. NSInvocationOperation 2....

  • 9.阻塞队列和线程池

    阻塞队列 特性 队列是空的时候,从队列获取元素的操作会被阻塞 队列是满的时候,往队列添加元素的操作会被阻塞 实现 ...

  • 数据结构之队列的链式存储结构

    之前写了队列的顺序存储结构,队列的定义及操作见 数据结构之队列的顺序存储结构 队列的链式存储结构与操作实现 队列接...

  • 数据结构题目34:顺序队列的操作

    顺序队列的操作有以下基本操作: 初始化一个队列 测试队列是否为空 取当前队头元素 队列的插入(进队) 队列的删除(...

网友评论

      本文标题:队列操作

      本文链接:https://www.haomeiwen.com/subject/dnzpdltx.html