周末作业 c++

news2024/11/26 10:02:37

将顺序栈,循环队列定义成模板类型:

#include <iostream>

using namespace std;

template <typename T,int Maxsize>
class seqstack
{
private:
    T data[Maxsize];
    int top;
public:
    seqstack()      //无参构造
    {
        top=-1;
        cout<<"无参构造"<<endl;
    }

    seqstack(T d):data(d)       //有参构造
    {
        top==-1;
        cout<<"有参构造"<<endl;
    }

    bool isempty()  //判空
    {
        return top==-1;
    }

    int size()     //返回容纳的元素数
    {
        cout<<"栈中有"<<top+1<<"元素"<<endl;
        return top+1;
    }

    void push(T key)  //入栈
    {
        if(top==Maxsize-1)
        {
            cout<<"栈满"<<endl;
            return;
        }
        data[++top]=key;
        cout<<"入栈成功"<<endl;
        return;
    }

    void pop()  //出栈
    {
        if(top==-1)
        {
            cout<<"栈满"<<endl;
            return;
        }
        data[top--];
        cout<<"出栈成功"<<endl;
        return;
    }

};

template <typename T,int Maxsize>
class circularqueue
{
private:
    T data[Maxsize];
    int front;
    int rear;
public:
    circularqueue()      //无参构造
    {
        front=rear;
        cout<<"无参构造"<<endl;
    }

    circularqueue(T d):data(d)      //有参构造
    {
        front=rear;
        cout<<"有参构造"<<endl;
    }

    ~circularqueue()    //析构函数
    {
        cout<<"析构函数"<<endl;
    }

    int isfront()   //输出第一个元素
    {
        cout<<"队列中第一个元素为:"<<data[front]<<endl;
        return data[front];
    }

    int isback()    //输出最后一个元素
    {
        cout<<"队列中最后一个元素为:"<<data[rear-1]<<endl;
        return data[rear-1];
    }

    bool empty()    //判空
    {
        return front==rear;
    }

    int size()      //返回存储元素个数
    {
        cout<<"队列中存储了"<<(Maxsize-front+rear+1)%Maxsize<<"个元素"<<endl;
        return (Maxsize-front+rear+1)%Maxsize;
    }

    void push(T key)     //插入
    {
        if((rear+1)%Maxsize==front)
        {
            cout<<"队满"<<endl;
            return;
        }
        data[rear]=key;
        rear=(rear+1)%Maxsize;
        cout<<"插入成功"<<endl;
        return;
    }

    void pop()      //删除
    {
        if(front==rear)
        {
            cout<<"队空"<<endl;
            return;
        }
        front=(front+1)%Maxsize;
        cout<<"删除成功"<<endl;
        return;
    }
};

int main()
{
    seqstack<int,5> stack;
    if(stack.isempty())
    {
        cout<<"栈空"<<endl;
    }

    stack.push(1);
    stack.push(2);
    stack.size();
    cout<<endl;

    circularqueue<char,10> queue;
    if(queue.empty())
    {
        cout<<"队空"<<endl;
    }
    queue.push('a');
    queue.push('b');
    queue.size();
    queue.isback();
    queue.isfront();


    return 0;
}

思维导图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/780653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jenkins使用企业微信进行审批

该篇文章实现了基于企业微信进行审批的功能&#xff08;也支持其他的webhook&#xff09; 前提是进行sharelibrary的配置 一、首先我们使用jenkins的sharelibrary进行审批人全局参数的设置&#xff08;该步骤是为了当审批人变动时不需要该每个pipeline只改动全局变量即可&…

❤️创意网页:抖音汉字鬼抓人小游戏复刻——附带外挂(“鬼鬼定身术”和“鬼鬼消失术”)坚持60秒轻轻松松(●‘◡‘●)

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;简单好用又好看&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;欢迎踏入…

《零基础入门学习Python》第053讲:论一只爬虫的自我修养

0. 请写下这一节课你学习到的内容&#xff1a;格式不限&#xff0c;回忆并复述是加强记忆的好方式&#xff01; 马上我们的教学就要进入最后一个章节&#xff0c;Pygame 嗨爆引爆全场&#xff0c;但由于发生了一个小插曲&#xff0c;所以这里决定追加一个章节&#xff0c;因为…

下载|GitLab 2023 年 DevSecOps 全球调研报告:安全左移深入人心、AI/ML 蔚然成风

目录 谁应该对应用程序安全负主要责任&#xff1f; 安全实践的最大挑战 AI 驱动研发&#xff0c;提升研发效率 各个角色使用的工具数量是多少&#xff1f; 一体化 DevSecOps 平台有哪些优势&#xff1f; 56%、74%、71%、65%、57% 这些数字和 DevSecOps 结合在一起&#xf…

Java -- 元注解

元注解 就是 Java标准库中 原生的注解&#xff0c;有点类似于 Java类 中的 Object&#xff0c;由于添加在其他注解上 Java总共有四个元注解&#xff0c;他们的功能如下&#xff1a; Target(ElementType.ANNOTATION_TYPE)&#xff1a;指定该注解可以用于注解类、接口或枚举类型…

element 表格里,每一行都循环使用el-popover组件,关闭按钮失效问题如何解决?

具体代码 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><title></title><link rel"stylesheet" href"https://unpkg.com/element-ui/lib/theme-chalk/index.css"><styl…

Linux Misc 驱动-编写驱动例程基于iTOP-STM32P157开发板

首先我们回想一下注册杂项设备的三大流程&#xff0c;我们在 Windows 上面新建 misc.c 文件&#xff0c;并用 sourceinsight 打开。我们可以将上次编写的 helloworld.c 里面的代码拷贝到 misc.c 文件&#xff0c;并修改为如下图所示 添加头文件 /*注册杂项设备头文件*/ #inc…

辅助驾驶功能开发-功能规范篇(23)-2-Mobileye NOP功能规范

5.2 状态机要求 5.2.1 NOP/HWP 状态机 NOP/HWP状态机如下所示&#xff1a; 下表总结了这些状态&#xff1a; 状态描述Passive不满足功能条件&#xff0c;功能无法控制车辆执行器。Standby满足功能条件。该功能不是由驾驶员激活的。功能不控制车辆执行器。Active - Main功能由…

海盗王基于golang重制版的商城服务端

海盗王原始的商城服务端&#xff0c;附带有很多其他功能&#xff08;如GM留言管理&#xff0c;商品管理接口&#xff09;&#xff0c;配置起来非常麻烦&#xff0c;而且运行时问题也很多&#xff0c;经常会出现弹出停止响应&#xff0c;无法正常提供服务。 在很早的时候&#x…

NTFS SSD USB 硬盘盒写入未结束拔出后Linux可识别,Windows不识别,报错无法访问

windows平台修复过程&#xff1a; 故障 管理员权限打开cmd&#xff0c;执行指令 chkdsk.exe /F /R f: C:\Windows\system32>chkdsk.exe /F /R f: 文件系统的类型是 NTFS。 卷标是 YeQiang-Data。 阶段 1: 检查基本文件系统结构... 已处理 2520 个文件记录。 文件验证完…

zabbix安装Grafana

一、web访问 https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.1-1.x86_64.rpm [rootserver ~] yum localinstall -y grafana-4.6.1-1.x86_64.rpm //yum方式安装本地rpm并自动解决依赖关系 [rootserver ~] grafana-cli plugins install alexanderzob…

探秘Spring中Bean的注解宝典:解读存取Bean的相关注解及用法

目录 存储Bean对象Controller(控制器存储)Service(服务存储)Repository(仓库存储)Component(组件存储)Configuration(配置存储)Bean重命名Bean 获取Bean对象属性注入构造方法注入Setter注入Resource(注入关键字) 存储Bean对象 将对象存储在 Spring 中&#xff0c;有两种注解类…

00_ubuntu_开发环境的搭建

ubuntu 的版本22.04 2023-07-21 1.卸载firefox dpkg --get-selections |grep firefox // 查看安装包的信息 sudo apt-get purge firefox firefox-locale-en firefox-locale-zh-hans // 卸载相应的包 2.下载google安装包并安装 wget https://dl.google.com/linux/direct/goo…

【Window系统】安装FFmpeg教程

目录 1、下载FFmpeg 2、配置环境变量 3、检验和测试 1、下载FFmpeg 两个下载路径&#xff1a; Github直链下载&#xff1a;Releases BtbN/FFmpeg-Builds (github.com)蓝奏云下载&#xff1a;ffmpeg-n5.0-latest-win64-lgpl-shared-5.0.zip - 蓝奏云 2、配置环境变量 将…

15matlab数据分析多项式的相乘和相除(matlab程序)

1.简述 xlsread和xlswrit函数 在MATLAB中经常会用到数据的读取&#xff0c;首先是从Excel中读取数据到MATLAB中去。下面给出原始Excel数据内容&#xff1a; 在MATLAB读取结果如下&#xff1a; mxlsread(fanjufei.xls,1,A1:C3)m 1 2 3 4 5 6 …

yum镜像源更新很慢,不管是阿里源还是清华源

今天想要再Centos7上安装docker测试&#xff0c;但是发现不管是阿里源还是清华源 yum makecache都更新的特别慢。有大佬知道啥原因不&#xff1f; 坐标成都&#xff0c;联通宽带300M

W801 ADC功能,基于CDK Demo以及Arduino平台测试

W801 ADC功能&#xff0c;基于CDK Demo以及Arduino平台测试 &#x1f33c;W801开发板&#xff08;HLK-W801 详细资料见&#xff1a;https://h.hlktech.com/Mobile/download/fdetail/170.html&#xff09; &#x1f4d3;W801 ADC简介 &#x1f4d1;集成 4 路 12 比特 ADC&…

华为eNSP:ospf的配置

一、拓扑图 二、路由器的配置 1、路由器依据规划配置接口IP AR1: <Huawei>system-view [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 10.10.10.1 24 [Huawei-GigabitEthernet0/0/0]qu AR2: <Huawei>system-view [Huawei]int g0/0/0 [Huawei-Gi…

sql:是否在时间段内

判断给定时间是否在区间内&#xff0c;由于结束时间可能为空&#xff0c;若为空表示长期&#xff1b;希望在 end_date 可以延长180天作为最终的 end_date -- okAND ((ic.price_end_date is null and ic.price_start_date < 2022-01-22) or (ic.price_end_date is not null …

C++ GDAL找出多时相遥感影像缺失的日期并自动生成新的全零图像作为替补

本文介绍基于C 语言的GDAL库&#xff0c;基于一个存储大量遥感影像的文件夹&#xff0c;依据每一景遥感影像的文件名中表示日期的那个字段&#xff0c;找出这些遥感影像中缺失的成像日期&#xff0c;并新生成多个像元值全部为0的栅格文件&#xff0c;作为这些缺失日期当日的遥感…