首页 > 其他分享 >栈和队列

栈和队列

时间:2023-01-07 16:13:03浏览次数:31  
标签:head return 队列 Car top int tail

栈一般数组和链表两种实现方式

栈:先进后出、尾入尾出

class Stack{
private:
    int *data;//存放栈中的数据
    int maxsize;//栈最大空间
    int top;//栈顶
    
public:
    //默认空间为10
    Stack() //初始化栈
    {
        maxsize = 10;
        data = new int[maxsize];//分配栈空间
        top = -1;//初始化栈顶
    }
    //设置最大空间
    Stack(int max_size) {
        maxsize = max_size;
        data = new int[maxsize];//分配栈空间
        top = -1;//初始化栈顶
    }
    ~Stack() {
        delete data;
    }
    //是否栈空
    bool isEmpty() {
        return (top == -1)?true:false;
    }
    //是否栈满
    bool isFull() {
        return (top >= maxsize)?true:false;
    }
    //进栈
    bool push(int x) {
        if(isFull())
            return false;
        else
            data[++top] = x;
        return true;
    }
    //出栈
    bool pop(int &x) 
    {
        if(isEmpty())
            return false;
        else
            x = data[top--];
        return true;
    }
    //清除栈
    void clear(){
        top = -1;
    }
};

 

队列:先进先出(可以想象为排队)、尾入头出

例子停车场管理

 

struct Car
{
    char t[5];//进入时间 
    int sign;//车牌号
    Car *next;
};

struct Lane
{
    Car *head;
    Car *tail;
    
    Lane()
    {
        head=(Car*)malloc(sizeof(Car));
        tail=head->next;
    }
    
    bool empty()
    {
        return head==tail?true:false;
    }
    
    void push(int tsign)//队尾入 
    {
        tail=(Car*)malloc(sizeof(Car));
        tail->sign=tsign;
        tail=tail->next;
        tail=NULL;//位置加一 
    }
    
    Car* pop()//队头出 
    {
        Car *p=head;
        head=head->next;
        return p;
    }
    
};

 

标签:head,return,队列,Car,top,int,tail
From: https://www.cnblogs.com/weinan030416/p/17031649.html

相关文章

  • 简单算法:优先队列
    典型题目题目传送门优先队列对于蒟蒻来说,堆之类的……实在是有点不好理解。所以我们今天只从表面上讲讲什么是优先队列,并且争取做到熟练的运用(知其然不知其所以然)就好......
  • 代码随想录算法训练营第10天 | 232. 用栈实现队列 225. 用队列实现栈
    232.用栈实现队列文章:代码随想录(programmercarl.com)思路:使用栈来模式队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈一个输入栈,一个输出栈,这里要注意输入栈......
  • 算法刷题 Day 10 | 232.用栈实现队列 225. 用队列实现栈
    今日任务:理论基础用栈实现队列用队列实现栈理论基础了解一下栈与队列的内部实现机智,文中是以C++为例讲解的。文章讲解:https://programmercarl.com/%E6%A0%......
  • 代码随想录day10 LeetCode 232. 用栈实现队列 225. 用队列实现栈
     232.用栈实现队列https://leetcode.cn/problems/implement-queue-using-stacks/利用两个栈来实现队列,一个先存储进去的,一个存储IN栈倒出来的元素,这样就可以获取到队首......
  • Redis实现秒杀功能 lua脚本判断库存、判断一人一单、添加到stream队列、异步处理订单
    需求:新增秒杀商品-将秒杀商品的id和秒杀数量添加到秒杀表中数据库操作将秒杀信息保存到Redis中基于Lua脚本,判断秒杀库存、一人一单,决定用户是否有下单资格如果抢购......
  • 「贪心&优先队列」数列极差
    本题为12月30日22寒假集训每日一题题解题目来源:(未知)题面题目描述佳佳的老师在黑板上写了一个由n个正整数组成的数列,要求佳佳进行如下操作:每次擦去其中的两个数a和......
  • 单调队列优化的DP问题
    单调队列优化的DP问题概述单调队列就是通过排除求最值时候的冗余,从而是队列具有性质,可以方便求解问题。DP的两个阶段:朴素DP的基本原理——闫氏DP分析法对朴素DP进行......
  • RabbitMQ延时队列
    1.延时队列定时关单RabbitMQ:7.延迟队列https://www.cnblogs.com/yydscn/p/15208402.html......
  • 处理队列消息
    新入门skynet系列视频b站网址https://www.bilibili.com/video/BV19d4y1678X系列博客的大纲在工作线程中,服务队列的消息被不断的取出来处理,并处理。staticvoid*th......
  • 栈和队列
    1.栈:后进先出  2.栈的实现classStack:def__init__(self):self.stack=[]defpush(self,ele):#进栈self.sta......