华清远见第六课程作业day3

news2024/11/25 2:23:25

类 栈


#include <iostream>

using namespace std;

class Sta{
private:
    int *data;
    int top;
public:
    Sta():data(new int(128)){
        top=-1;
        cout<<"stack::无参构造:"<<endl;
    }
    ~Sta(){
        delete data;
        cout<<"stack::析构函数:"<<this<<endl;
    }
    Sta(const Sta &other):data(new int (*other.data)),top(other.top){
        cout<<"拷贝构造函数"<<endl;
    }
    int empty(){
        return top==-1;
    }
    int full(){
        return top==127;
    }
    int statop(){
        return data[top];
    }
    int pop(){
        if(empty()!=1){
            int a=data[top];
            cout<<"出栈成功:"<<a<<endl;
            top--;
            return 1;
        }
        return -1;
    }
    int push(int a){
        if(full()!=1){
            top++;
            data[top]=a;
            cout<<"入栈成功:"<<endl;
            return 1;
        }
        return -1;
    }
    int size(){
        cout<<"size:"<<top<<endl;
        return top;
    }
    int clean(){
        top=0;
        return 0;
    }
};


int main()
{
    Sta sta;
    sta.push(4);
    sta.push(5);
    sta.push(1);
    sta.push(5);
    sta.push(8);
    cout<<sta.statop()<<endl;
    Sta sta1=sta;


    return 0;
} 

类 队列

#include <iostream>

using namespace std;

class Sta{
private:
    int *data;
    int head;
    int tail;
public:
    Sta():data(new int(10)){
        head=0;
        tail=1;
        cout<<"stack::无参构造:"<<endl;
    }
    ~Sta(){
        delete data;
        cout<<"stack::析构函数:"<<this<<endl;
    }
    Sta(const Sta &other):data(new int (*other.data)),head(other.head),tail(other.tail){
        cout<<"拷贝构造函数"<<endl;
    }
    int empty(){
        return head==tail;
    }
    int full(){
        return (tail+1+10)%10==head;
    }
    int pop(){
        if(empty()!=1){
            int a=data[head];
            cout<<"出队列成功:"<<a<<endl;
            head++;
            return 1;
        }
        return -1;
    }
    int push(int a){
        if(full()!=1){
            data[tail]=a;
            tail++;
            cout<<"入队列成功:"<<endl;
            return 1;
        }
        return -1;
    }
    int size(){
        int len=(tail-head+10)%10;
        cout<<"size:"<<len<<endl;
        return len;
    }
    int clean(){
        head=tail=0;
        return 0;
    }
};


int main()
{
    Sta sta;
    sta.push(4);
    sta.push(5);
    sta.push(1);
    sta.push(5);
    sta.push(8);
    cout<<sta.pop()<<endl;;
    Sta sta1=sta;


    return 0;
}

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

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

相关文章

信息安全技术概论-李剑-持续更新

图片和细节来源于 用户 xiejava1018 一.概述 随着计算机网络技术的发展&#xff0c;与时代的变化&#xff0c;计算机病毒也经历了从早期的破坏为主到勒索钱财敲诈经济为主&#xff0c;破坏方式也多种多样&#xff0c;由早期的破坏网络到破坏硬件设备等等 &#xff0c;这也…

顾曼宁(顾曼):颠覆行业,引领共享伞新浪潮

在共享经济浪潮中&#xff0c;有一位勇敢的女性创业者&#xff0c;以其卓越的洞察力和创新思维&#xff0c;成为国内共享晴雨伞行业的领航者——她就是顾曼宁&#xff08;顾曼&#xff09;。作为行业颠覆者和蚂蚁金服战略投资的受益者&#xff0c;她的创业历程彰显了女性创业者…

【Kafka】Kafka再平衡机制及相关参数

背景 Kafka作为一款基于发布订阅模式的消息队列&#xff0c;生产者将消息发送到Kafka集群&#xff08;Brokers&#xff09;中&#xff0c;消费者&#xff08;Consumer Group &#xff09;拉取消息进行消费&#xff0c;实现了异步机制。Kafka中&#xff0c;消费者通常以消费者组…

【Python从入门到进阶】35、selenium基本语法学习

接上篇《34、selenium基本概念及安装流程》 上一篇我们介绍了selenium技术的基础概念以及安装和调用的流程&#xff0c;本篇我们来学习selenium的基本语法&#xff0c;包括元素定位以及访问元素信息的操作。 一、元素定位 Selenium元素定位是指通过特定的方法在网页中准确定位…

SpringMvc--文件上传下载

一.什么是SpringMvc文件上传下载 二.文件上传 编写hpjyController类 编写upload.jsp 建立一个储存图片的文件夹 ​编辑 编写PageController来处理页面跳转 编写工具类PropertiesUtil 编写resource.properties类 编写list.jsp 测试结果 三.文件下载 编写hpjyControll…

Redis集群3.2.11离线安装详细版本(使用Ruby)

1.安装软件准备 1.Redis版本下载 Index of /releases/http://download.redis.io/releases/ 1.2gcc环境准备 GCC(GNU Compiler Collection,GNU编译器套件)是一套用于编译程序代码的开源编译器工具集。它的主要用途是将高级编程语言(如C、C++、Fortran等)编写的源代码转换…

MyBatis之分页查询:MyBatis PageHelper

MyBatis之分页查询&#xff1a;MyBatis PageHelper 简介 MyBatis&#xff0c;作为目前流行的ORM框架&#xff0c;大大方便了日常开发。而对于分页查询&#xff0c;虽然可以通过SQL的limit语句实现&#xff0c;但是比较繁琐。而MyBatis PageHelper的出现&#xff0c;则解决了这…

如何在postman中实现自动化测试?

这里简单演示在postman中怎样实现自动化测试&#xff08;不涉及到用户登录的token认证&#xff09; 导入测试用例文件&#xff0c;测试web接口 postman使用流程&#xff1a;创建collection文件夹&#xff0c;在该文件夹中创建post&#xff0c;get请求&#xff1b;其中传入的参…

Keil MDK-ARM 软件的部分常用快捷键如下

F7&#xff1a;编译。F8: 下载。F9&#xff1a;添加/取消断点。Ctrl F5&#xff1a;调试。Tab&#xff1a;将选中的内容整体右移。Shift Tab&#xff1a;将选中的内容整体左移。Home&#xff1a;将光标移至行首。End&#xff1a;将光标移至行末。Ctrl >&#xff1a;光标…

【SpringMVC】注解、参数传递、返回值和页面跳转的关键步骤

目录 引言 一、常用注解 1.1.RequestMapping 1.2.RequestParam 1.3.RequestBody 1.4.RequestHeader 1.5.PathVariable 二、参数传递 2.1.基础类型String 2.2.复杂类型 2.3.RequestParam 2.4.PathVariable 2.5.RequestBody 2.6.RequestHeader 三、返回值 3.1.vo…

大数据-玩转数据-Flink状态编程(中)

一、键控状态 键控状态是根据输入数据流中定义的键&#xff08;key&#xff09;来维护和访问的。 Flink为每个键值维护一个状态实例&#xff0c;并将具有相同键的所有数据&#xff0c;都分区到同一个算子任务中&#xff0c;这个任务会维护和处理这个key对应的状态。当任务处理…

Jmeter压测监控体系搭建Docker+Influxdb+Grafana

章节目录&#xff1a; 一、背景介绍1.1 概述1.2 拓扑图 二、云服务器设置三、Docker3.1 概述3.2 搭建流程3.3 安装验证3.4 配置docker镜像加速3.5 取消sudo运行(可选操作) 四、InfluxDB4.1 镜像拉取4.2 运行数据库4.3 创建存储 jmeter 数据的库 五、Grafana5.1 镜像拉取5.2 关联…

Day_13 > 指针进阶(2)

目录 1.函数指针数组 2.指向函数指针数组的指针 3.回调函数 qsort()函数 代码示例 void* 4.结束 今天我们在进阶指针的基础上&#xff0c;学习进阶指针的第二部分 1.函数指针数组 首先我们回顾一下指针数组 char* arr[5]://字符指针数组 - 数组 - 存放的是字符指针 in…

mysql的索引结构

索引概述 索引&#xff08; index &#xff09;是帮助 MySQL 高效获取数据的数据结构 ( 有序 ) 。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0c; 这样就可以在这些…

Spring与OAuth2:实现第三方认证和授权的最佳实践

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

python基本类型

数值类型 整型 int_val 1145143 print(int_val)python中的整型是大数类型。 一些其他函数 val 30 vlen val.bit_length() # 转换为二进制的长度 v_8 oct(val) print(v_8) # 将十进制转为八进制 v_16 hex(val) # 将十进制转为十六进制 v_2 bin(val) # 将十进制转为二进…

二、环境配置,项目运行 —— TinyWebServer

环境配置&#xff0c;项目运行 —— TinyWebServer 一、前言 上一期已经介绍过这个项目的基本结构&#xff0c;不懂得可以点开主页查找。 写代码前。一般的步骤就是&#xff0c;先把别人的代码下载下来运行。一、一方面看看最终效果是否是自己想要的&#xff0c;二、掌握项目…

redis分布式锁详解

一、基本分布式锁实现 1、案例&#xff08;扣减库存&#xff09; RequestMapping("reduceStock")public String reduceStock() {String lockKey "lock:product_101";String clientId UUID.randomUUID().toString();// 过期时间要和设置key成为一条命令…

linux下shell脚本实现wordpress搭建

wordpress_auto_install.sh #!/bin/bashuser$(whoami)function wordpress_auto_install () { if [ $user "root" ];thenecho "前提&#xff1a;调整系统配置&#xff0c;如关闭selinux、firewall等&#xff01;"sed -i s/SELINUXenforcing/SELINUXdis…

光线投射之伪3d

光线投射是一种在 2D 地图中创建 3D 透视的渲染技术。当计算机速度较慢时&#xff0c;不可能实时运行真正的 3D 引擎&#xff0c;光线投射是第一个解决方案。光线投射可以非常快&#xff0c;因为只需对屏幕的每条垂直线进行计算。 光线投射的基本思想如下&#xff1a;地图是一…