C++QT day3

news2024/10/7 9:23:46

1> 自行封装一个栈的类,包含私有成员属性:栈的数组、记录栈顶的变量

成员函数完成:构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小

2> 自行封装一个循环顺序队列的类,包含私有成员属性:存放队列的数组、队头位置、队尾位置

成员函数完成:构造函数、析构函数、拷贝构造函数、入队、出队、清空队列、判空、判满、求队列大小

1:

#include <iostream>
#define MAX 128

using namespace std;
class Stack_s
{
private:
    int *p=new int[MAX];//栈的数组
    int top;//记录栈顶的变量
public:
    //构造函数
    Stack_s(int t=-1)
    {
        top=t;
        cout<<"无参构造函数"<<endl;
    }
    //析构函数
    ~Stack_s()
    {
        cout<<"Stack::析构函数"<<endl;
    }
    //拷贝构造函数
    Stack_s(const Stack_s &other):p(other.p),top(other.top)
    {
        cout<<"拷贝构造函数"<<endl;
    }
    //入栈
    int stack_push(int e)
    {
        if(stack_full())
        {
            cout<<"入栈失败"<<endl;
            return -1;
        }
        top++;
        p[top]=e;
        cout<<"入栈成功"<<endl;
        return 0;
    }
    //出栈
    int stack_pop()
    {
        if(stack_empty())
        {
            cout<<"出栈失败"<<endl;
            return -1;
        }
        int e=p[top];
        top--;
        cout<<e<<" 出栈成功"<<endl;
        return 0;
    }
    //清空栈
    int stack_delete()
    {
        while(top!=-1)
        {
            stack_pop();
        }
        delete [] p;
        p=nullptr;
        cout<<"清空栈成功"<<endl;
        return 0;
    }
    //判空
    bool stack_empty()
    {
        if(top==-1)
        {
            cout<<"栈空"<<endl;
            return 1;
        }
        return 0;
    }
    //判满
    bool stack_full()
    {
        if(top==MAX-1)
        {
            cout<<"栈满了"<<endl;
            return 1;
        }
        return 0;
        return 0;
    }
    //获取栈顶元素
    int stack_gettop()
    {
        cout<<"栈顶元素是:"<<p[top]<<endl;
        return 0;
    }
    //栈的大小
    void stack_getsize()
    {
        cout<<"栈的大小为:"<<top+1<<endl;
    }
    void show(int i)
    {
        cout<<p[i]<<" ";
    }
};
int main()
{
    Stack_s s1;
    int e;
    int s;
    s1.stack_empty();
    cout<<"请输入要入栈的个数:";
    cin>>s;
    for(int i=0;i<s;i++)
    {
        cout<<"请输入要入栈的元素:";
        cin>>e;
        s1.stack_push(e);
    }
    s1.stack_gettop();
     s1.stack_getsize();
    for(int i=0;i<s;i++)
    {
        s1.show(i);
    }
    cout<<endl;
    s1.stack_delete();
    return 0;
}

2:

#include <iostream>
#define MAX 128

using namespace std;
class Queue_q
{
private:
    int *p=new int[MAX];//队列的数组
    int tail;//记录队尾元素
    int head;//记录对头元素
public:
    //构造函数
    Queue_q(int t=0)
    {
        head=t;
        tail=t;
        cout<<"无参构造函数"<<endl;
    }
    //析构函数
    ~Queue_q()
    {
        cout<<"Stack::析构函数"<<endl;
    }
    //拷贝构造函数
    Queue_q(const Queue_q &other):p(other.p),tail(other.tail),head(other.head)
    {
        cout<<"拷贝构造函数"<<endl;
    }
    //入队
    int queue_push(int e)
    {
        if(queue_full())
        {
            cout<<"入队失败"<<endl;
            return -1;
        }
        p[tail]=e;
        tail++;
        cout<<"入队成功"<<endl;
        return 0;
    }
    //出队
    int queue_pop()
    {
        if(queue_empty())
        {
            cout<<"出队失败"<<endl;
            return -1;
        }
        int e=p[head];
        head=(head+1)%MAX;
        cout<<e<<" 出队成功"<<endl;
        return 0;
    }
    //清空队列
    int queue_delete()
    {
        while(head!=tail)
        {
            queue_pop();
        }
        delete [] p;
        p=nullptr;
        cout<<"清空队列成功"<<endl;
        return 0;
    }
    //判空
    bool queue_empty()
    {
        if(head==tail)
        {
            cout<<"队列空"<<endl;
            return 1;
        }
        return 0;
    }
    //判满
    bool queue_full()
    {
        if((tail+1)==0)
        {
            cout<<"队列满了"<<endl;
            return 1;
        }
        return 0;
    }
    //队列的大小
    void queue_getsize()
    {
        int size;
        size=(tail-head+MAX)%MAX;
        cout<<"队的大小为:"<<size<<endl;
    }
    void show(int i)
    {
        cout<<p[i]<<" ";
    }
};
int main()
{
    Queue_q q1;
    int e;
    int s;
    q1.queue_empty();
    cout<<"请输入要入队的个数:";
    cin>>s;
    for(int i=0;i<s;i++)
    {
        cout<<"请输入要入队的元素:";
        cin>>e;
        q1.queue_push(e);
    }
     q1.queue_getsize();
    for(int i=0;i<s;i++)
    {
        q1.show(i);
    }
    cout<<endl;
    q1.queue_delete();
    return 0;
}

思维导图:

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

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

相关文章

backward问题记录

大致问题是这样的 模型先计算一个输出 然后根据这个输出&#xff0c;用lbfgs去优化另一个变量 最后优化模型&#xff0c;大致代码如下 optimizer optim.Adam(model.parameters(), lrlr)for inputs in dataloader:outputs model(inputs)u outputs.reshape(1, -1, 1)beta to…

扫地机器人还能创新吗?云鲸给了个Yes

作者 | 辰纹 来源 | 洞见新研社 1996年&#xff0c;瑞典家电巨头伊莱克斯推出全球首款扫地机器人“三叶虫”。 与现在的产品相比&#xff0c;“三叶虫”靠随机碰撞的模式对空间进行清扫&#xff0c;清洁效率很低&#xff0c;市场渗透率也不高&#xff0c;但并不妨碍戴森、iRo…

表单引擎的自定义控件的概念与设计

基本概念 概述 控件的定义&#xff1a;用于展示或者采集数据的表单元素&#xff0c;称为控件,比如&#xff1a;文本框、下拉框、单选按钮、从表等.自定义控件&#xff1a;表单引擎提供的基础控件之外的控件称为自定义控件, 这些控件由开发人员自己定义&#xff0c;比如&#…

更灵活的 serverless framework 配置文件

更灵活的 serverless framework 配置文件 前言 再经过前置教程的部署之后&#xff0c;不知道你有没有注意这样一个问题&#xff0c;就是我们部署的函数名&#xff0c;以及 API网关 的 endpoint&#xff0c;它们的名称和路径都带一个 dev? 这个就是 stage 导致的了&#xff…

美客多选品趋势分析,美客多选品时的注意事项

都知道选品的重要性&#xff0c;美客多这个平台也一样&#xff0c;选品选对了肯定事半功倍&#xff0c;本文介绍了美客多选品趋势分析&#xff0c;美客多选品时的注意事项&#xff0c;一起来了解下吧。、 美客多选品趋势分析 1、墨西哥站&#xff1a;跨境支付高&#xff0c;偏…

ESP32C3 PWM输出

目前对于遥控双发差速小飞机计划采用如下架构&#xff1a; ESP32C3做主控&#xff0c;兼具遥控收发和飞行控制锂电池供电&#xff0c;带电量检测双发&#xff0c;720空心杯电机&#xff0c;55mm桨&#xff0c;带电流检测MPU6050加速度计和陀螺仪预留4个控制信号输出 马达控制要…

(Java)多线程带来的的风险-线程安全 (第一部)

前言&#xff1a;线程安全是整个多线程中&#xff0c;最为复杂的部分&#xff0c;也是最重要的部分。 目录 什么是线程安全问题&#xff1f; 线程不安全的原因 ⁜⁜总结 &#xff1a;线程安全问题的原因 ⁜⁜ 解决方法1 ——加锁 synchronized &#xff08;监视器锁monitor…

算法与设计分析--实验一

蛮力算法的设计与分析&#xff08;暴力&#xff09; 这次是某不知名学院开学课程的第一次实验&#xff0c;一共5道题&#xff0c;来自力扣 第一题.216组合总和*力扣题目链接 第一道题是经典的树型回溯 class Solution { public:vector<vector<int>> combinatio…

红米Note12Turbo解锁BL刷入PixelExperience原生ROM系统详细教程

红米Note12Turbo的兄弟是国外POCO F5 机型&#xff0c;并且该机性价比非常高&#xff0c;国内外销量也还可以&#xff0c;自然不缺第三方ROM适配。目前大家心心念念的原生PixelExperience已成功发布&#xff0c;并且相对来说&#xff0c;适配程度较高&#xff0c;已经达到日用的…

sqlserver union和union all 的区别

1.首先在数据库编辑1-40数字&#xff1b; 2.查询Num<30的数据&#xff0c;查询Num>20 and Num<40的数据&#xff0c;使用union all合并&#xff1b; 发现30-20的数字重复了&#xff0c;可见union all 不去重&#xff1b; 3.查询Num<30的数据&#xff0c;查询Num…

嵌入式Linux驱动开发(同步与互斥专题)(一)

一、内联汇编 1.1、语法 内联汇编实现加法 1.2、同步互斥失败的例子 进程A在读出valid时发现它是1&#xff0c;减1后为0&#xff0c;这时if不成立&#xff1b;但是修改后的值尚未写回内存&#xff1b;假设这时被程序B抢占&#xff0c;程序B读出valid仍为1&#xff0c;减1后为…

Callable、Future和FutureTask

一、Callable 与 Runnable 先说一下java.lang.Runnable吧&#xff0c;它是一个接口&#xff0c;在它里面只声明了一个run()方法&#xff1a; public interface Runnable {public abstract void run(); }由于run()方法返回值为void类型&#xff0c;所以在执行完任务之后无法返…

云数据库知识学习——概述

一、云计算是云数据库兴起的基础 云计算是分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等计算机和网络技术发展融合的产物。云计算是由一系列可以动态升级和被虚拟化的资源组成的&#xff0c;用户无需掌握云计算的技术&#xff0c;只要通过网络就可以访问这些资…

关于近期小程序测试的常见漏洞演示

本章节将为大家介绍一下小程序常见的漏洞的展示案例&#xff0c;包括支付业务逻辑漏洞、任意用户登录漏洞、水平越权漏洞等高危漏洞。 以上小程序测试均获取授权&#xff0c;并且客户均已得到修复(仅供学习&#xff0c;请勿恶意攻击)​ 关于微信小程序如何拦截数据包&#xff…

Nat. Communications Biology2022 | PepNN+: 用于识别多肽结合位点的深度关注模型

论文标题&#xff1a;PepNN: a deep attention model for the identification of peptide binding sites 论文链接&#xff1a;PepNN: a deep attention model for the identification of peptide binding sites | Communications Biology 代码地址&#xff1a;oabdin / PepN…

csp非零段划分

202109-2 非零段划分 计算机软件能力认证考试系统 code&#xff1a; #include<bits/stdc.h> using namespace std; const int N5e59;int a[N];vector<int> v[N];//v[i]存放所有元素值为i的元素的下标 int main() {ios::sync_with_stdio(false);cin.tie(0),cout.…

20230908_python练习_服务端与客户端数据交互

用户可以通过简单操作进行服务端数据交互&#xff0c;通过简单的sql语句直接获取EXCEL表&#xff0c;可以用来作为交互的基础。主要涉及三部分&#xff1a; 1:数据库存储表结构 --日志记录表结构 create table shzc.yytowz_service_title (leixing varchar2(18),ziduan1 v…

C#__多线程之任务和连续任务

/// <summary> /// /// 任务&#xff1a;System.Threading.Tasks&#xff08;异步编程的一种实现方式&#xff09; /// 表应完成某个单元工作。这个工作可以在单独的线程中运行&#xff0c;也可以以同步方式启动一个任务。 /// /// 连续任务&#…

【笔试强训选择题】Day36.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01; 文章目录 前言一、Day…

蚂蚁发布金融大模型:两大应用产品支小宝2.0、支小助将在完成备案后上线

9月8日&#xff0c;在上海举办的外滩大会上&#xff0c;蚂蚁集团正式发布金融大模型。据了解&#xff0c;蚂蚁金融大模型基于蚂蚁自研基础大模型&#xff0c;针对金融产业深度定制&#xff0c;底层算力集群达到万卡规模。该大模型聚焦真实的金融场景需求&#xff0c;在“认知、…