首页 > 其他分享 >232. 用栈实现队列 C

232. 用栈实现队列 C

时间:2024-02-29 19:22:54浏览次数:25  
标签:obj 队列 tail int 用栈 front MyQueue 232 size

C用数组模拟即可

typedef struct {
    int a[100];
    int front;
    int tail;
    int size;
} MyQueue;


MyQueue* myQueueCreate() {
    MyQueue* q=(MyQueue*)malloc(sizeof(MyQueue));
    q->front=0;
    q->tail=0;
    q->size=0;
    for(int i=0;i<100;i++){
        q->a[i]=0;
    }
    return q;
}

void myQueuePush(MyQueue* obj, int x) {
    obj->a[obj->tail]=x;
    obj->tail=(obj->tail+1)%100;
    obj->size++;
}

int myQueuePop(MyQueue* obj) {
    int temp=obj->a[obj->front];
    obj->size--;
    obj->front=(obj->front+1+100)%100;
    return temp;
}

int myQueuePeek(MyQueue* obj) {
    return obj->a[obj->front];
}

bool myQueueEmpty(MyQueue* obj) {
    if(obj->size==0) return true;
    return false;
}

void myQueueFree(MyQueue* obj) {
    free(obj);
}

/**
 * Your MyQueue struct will be instantiated and called as such:
 * MyQueue* obj = myQueueCreate();
 * myQueuePush(obj, x);
 
 * int param_2 = myQueuePop(obj);
 
 * int param_3 = myQueuePeek(obj);
 
 * bool param_4 = myQueueEmpty(obj);
 
 * myQueueFree(obj);
*/

结果:

标签:obj,队列,tail,int,用栈,front,MyQueue,232,size
From: https://www.cnblogs.com/llllmz/p/18045192

相关文章

  • 2024-02-27-物联网系统编程(6-消息队列)
    6.消息队列6.1IPC对象​除了最原始的进程间通信方式信号、无名管道和有名管道外,还有三种进程间通信方式,这三种方式称之为IPC对象:消息队列、共享内存、信号灯集。​IPC对象也是在内核空间开辟区域,每一种IPC对象创建好之后都会将其设置为全局,并且会给其分配一......
  • 单调队列学习笔记
    WhatIsMonotonicQueue单调队列是一种特殊的队列数据结构,用于维护一定的单调性,通常是单调递增或单调递减。单调队列的主要特点是,队列中的元素满足特定的单调性要求,使得队列的头部元素(或者尾部元素,取决于具体问题)始终是当前队列中的最大(或最小)值。这种特性使得单调队列可以高效......
  • 线性数据结构:数组、受限数组(栈、队列)、线性表
    1.数组数组定义  数组(Array)是有序的元素序列。属于线性结构(有且仅有一个前驱、有且仅有一个后继)。数组特点  数组的关键在于在内存中的物理地址对应的是一段连续的内存。这意味着如果想要在任意位置删除/新增一个元素,那么该位置往后的所有元素,都需要往前挪/往后挪一个位......
  • 9.消息队列
    9.1消息队列的使用场景。 消息队列在分布式场景中广泛应用,主要用于解决异步处理、解耦服务、流量削峰、数据一致性等多个场景。异步处理:在电商应用中,用户注册后,可以将发送验证邮件或短信的任务放入消息队列,由后台服务异步处理,这样主线业务逻辑(如保存用户信息)不会因为......
  • 详解MQ消息队列及四大主流MQ的优缺点
    前言近期有了想跳槽的打算,所以自己想巩固一下自己的技术,想了解一些面试比较容易加分的项,近期准备深入研究一下Redis和MQ这两样,这总体上都是为了解决服务器并发的原因,刚翻到了一篇有关于MQ的,觉得写得特别好,特此记录一下,也算是为了加深自己的印象。面试题切入1、为什么要使用MQ......
  • blocks 单调栈、单调队列题解
    blocks题解:1、题面:2、分析:题意大概就是说,找一段最长的区间,并且这段区间的平均值>=k,那么我们可以对他的每一个值减去k,最终求和>=0即可。那我们需要对每个可能的左端点和右端点进行考虑,并以此让他们进行配对,看他们之间的区间和是否非负。那么我们先定住一个右端点,再依次考虑......
  • [BZOJ1047][HAOI2007][AcWing1091]理想的正方形(单调队列)
    此题的数据相当大,暴力的显然过不了,即使是O(abn)的算法也会超时,所以只能考虑O(ablogn)或O(ab)的算法。50分暴力#include<bits/stdc++.h>usingnamespacestd;intn,a,b,m[1001][1001];intdx(intx,inty){ intmaxn=0,minn=0x7fffffff; for(inti=x;i<=x+n-1;++i){ for(in......
  • Rabbitmq 消息队列介绍
    Rabbitmq搭建和使用1.消息队列介绍1.1消息队列模式消息队列目前主要2种模式,分别为“点对点模式”和“发布/订阅模式”。1.1.1点对点模式一个具体的消息只能由一个消费者消费,多个生产者可以向同一个消息队列发送消息,但是一个消息在被一个消息者处理的时候,这个消息在队列......
  • 单调队列、单调栈
    单调栈什么是单调栈单调栈是指一个栈内部的元素具有严格单调性的一种数据结构,分为单调递增栈和单调递减栈。单调栈的性质1.满足栈底到栈顶的元素具有严格单调性。2.满足栈的先进后出特性,越靠近栈顶的元素越先出栈元素进栈过程对于一个单调递减栈来说,若当前进栈的元素为a,如果a......
  • yarn创建子队列,子队列出现超配的问题
    背景由于业务需求,需要新增一个子队列transfer,总资源:Vcore=192 Mem=320G,队列规划如下: 根据配置文件中的属性,transfer队列的容量为30%。集群总共有192个vcore和320GB内存。对于vcore,最大可分配数量为:vcore_limit=(total_vcore*transfer_queue_capacity)/10......