C++ day 3

1、

自行封装一个栈的类,包含私有成员属性:栈的数组、记录栈顶的变量,成员函数完成:构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小

stack.h

#ifndef STACK_H
#define STACK_H#include<iostream>using namespace std;class Stack
{private:int data[128];int top;
public:Stack();~Stack();Stack(Stack &s);//判空bool stack_empty();//返回bool类型,真为空,假为非空//判满bool stack_full();//入栈int stack_in(int num);//出栈int stack_out();//清空栈bool stack_clear();//获取栈顶元素int stack_get_top();//栈的大小int stack_size();//遍历void stack_show();};#endif // STACK_H

stack.cpp

#include"stack.h"Stack::Stack():top(-1)
{cout<<"Stack:构造函数"<<endl;
}Stack::~Stack()
{cout<<"Stack:析构函数"<<endl;
}Stack::Stack(Stack &s):top(s.top)
{for(int i=0; i<=top; i++){data[i] = s.data[i];}cout<<"Stack:拷贝构造函数"<<endl;
}//判空bool Stack::stack_empty(){return -1==top;}//判满bool Stack::stack_full(){return 127==top;}//入栈int Stack::stack_in(int num){if(Stack::stack_full()){cout<<"栈满满当当"<<endl;return -1;}//指向新的栈顶top++;//将要入栈的数据放入数组中data[top] = num;return 0;}//出栈int Stack::stack_out(){if(Stack::stack_empty()){cout<<"栈空空如也"<<endl;return -1;}return  data[top--];}//清空栈bool Stack::stack_clear(){if(Stack::stack_empty()){cout<<"栈空空如也"<<endl;return false;}//清空后栈顶归位top = -1;return true;}//获取栈顶元素int Stack::stack_get_top(){if(Stack::stack_empty()){cout<<"栈空空如也"<<endl;return -1;}return data[top];}//求栈的长度int Stack::stack_size(){return top+1;}//从栈顶到栈底遍历void Stack::stack_show(){if(Stack::stack_empty()){cout<<"栈空空如也"<<endl;return ;}for(int i=top; i>-1; i--){cout << data[i] << " ";}cout<<endl;}

main.cpp

#include <iostream>#include"stack.h"using namespace std;int main()
{Stack s;//入栈s.stack_in(3);s.stack_in(4);s.stack_in(8);s.stack_in(6);s.stack_in(5);//展示栈内元素cout<<"s:";s.stack_show();cout<<s.stack_out()<<"出栈成功"<<endl;//展示栈内元素cout<<"s:";s.stack_show();//获取栈的大小cout<<"此时栈内元素的数量为:"<<s.stack_size()<<endl;//栈顶元素为cout<<"栈顶元素为:"<<s.stack_get_top()<<endl;//清空栈s.stack_clear();cout<<"栈清空成功"<<endl;//展示栈内元素cout<<"s:";s.stack_show();return 0;
}

测试

2、

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

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

3、思维导图

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

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

相关文章

Paper: 利用RNN来提取恶意软件家族的API调用模式

论文 摘要 恶意软件家族分类是预测恶意软件特征的好方法&#xff0c;因为属于同一家族的恶意软件往往有相似的行为特征恶意软件检测或分类方法分静态分析和动态分析两种&#xff1a; 静态分析基于恶意软件中包含的特定签名进行分析&#xff0c;优点是分析的范围覆盖了整个代码…

【STM32】文件系统FATFS与Flash的初步使用

文件系统简介 简介可以不看&#xff0c;直接看移植步骤 文件系统是介于应用层和底层间的模糊层。底层提供API&#xff0c;比如说使用SDIO或者SPI等读写一个字节。文件系统把这些API组合包装起来&#xff0c;并且提供一些列函数&#xff0c;我们可以使用这些函数进行更进一步的…

《protobuf》基础语法2

文章目录 枚举类型ANY 类型oneof 类型map 类型改进通讯录实例 枚举类型 protobuf里有枚举类型&#xff0c;定义如下 enum PhoneType {string home_addr 0;string work_addr 1; }同message一样&#xff0c;可分为 嵌套定义&#xff0c;文件内定义&#xff0c;文件外定义。不…

Java基础之static关键字

目录 静态的特点第一章、静态代码块第二章、静态属性第三章、静态方法调用静态方法时静态方法中调用非静态方法时 第四章、static关键字与其他关键字 友情提醒 先看文章目录&#xff0c;大致了解文章知识点结构&#xff0c;点击文章目录可直接跳转到文章指定位置。 静态的特点…

Javase | StringBuffer、StringBuilder

目录&#xff1a; 思考&#xff1a;进行字符串的频繁拼接&#xff0c;会有什么问题&#xff1f;思考&#xff1a;为什么StringBuffer是可变的&#xff1f;StringBuffer是可追加字符串的&#xff1f;StringBuffer思考&#xff1a;如何优化StringBuffer的性能&#xff1f;StringB…

IDEA控制台取消悬浮全局配置SpringBoot配置https

IDEA控制台取消悬浮 idea 全局配置 SpringBoot(Tomcat) 配置https&#xff0c;同时支持http 利用JDK生成证书 keytool -genkey -alias httpsserver -keyalg RSA -keysize 2048 -keystore server.p12 -validity 3650配置类 Configuration public class TomcatConfig {Value(&quo…

数仓问答篇(一)

数仓架构&#xff08;即席查询&#xff09; 总体来说&#xff0c;Hadoop架构在数据量较低的情况下&#xff0c;运行速度远不及MPP架构&#xff0c;但数据量一旦超过某个量级&#xff0c;Hadoop架构在吞吐量方面将非常有优势。有些大数据数据仓库产品也采用混合架构&#xff0c;…

【数据结构】——排序的相关习题

目录 一、选择填空判断题题型一&#xff08;插入排序——直接插入排序&#xff09;题型二&#xff08;插入排序——折半插入排序&#xff09;题型三&#xff08;插入排序——希尔排序&#xff09;题型四&#xff08;交换排序——冒泡排序&#xff09;题型五&#xff08;交换排序…

时空预测 | 线性时空预测模型、图时空预测

目录 线性时空预测图时空预测 线性时空预测 这篇文章在时空预测领域&#xff0c;搭建了一个简单高效的线性模型&#xff0c;且使用了channel-independence的方式进行建模。 模型的整体结构如下图所示&#xff0c;是一个级联的结构。输入分为三个部分&#xff1a;temporal embed…

2核2G3M带宽服务器腾讯云和阿里云价格、性能对比

2核2G云服务器可以选择阿里云服务器或腾讯云服务器&#xff0c;腾讯云轻量2核2G3M带宽服务器95元一年&#xff0c;阿里云轻量2核2G3M带宽优惠价108元一年&#xff0c;不只是轻量应用服务器&#xff0c;阿里云还可以选择ECS云服务器u1&#xff0c;腾讯云也可以选择CVM标准型S5云…

【网络安全】图解 Kerberos:身份认证

图解 Kerberos&#xff1a;身份认证 1.什么是 Kerberos &#xff1f;2.Kerberos 基本概念2.1 基本概念2.2 KDC 3.Kerberos 原理3.1 客户端与 Authentication Service3.2 客户端与 Ticket Granting Service3.3 客户端与 HTTP Service Kerberos 是一种身份认证协议&#xff0c;被…

Java事件机制简介 内含面试题

面试题分享 云数据解决事务回滚问题 点我直达 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java、python面试题 项目实战:AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮…

预推免,保研------长安大学保内,附加分面试准备【记录帖】

&#x1f680;长安大学——人工智能系——程惠泽 &#x1f68c;前六学期专业排名&#xff1a;9/82 &#x1f68c;信息门户GPA&#xff1a;3.94 &#x1f68c;平均成绩&#xff1a;89.83 &#x1f68c;加权成绩&#xff1a;89.15 / ☁️本人比较菜&#xff0c;只能保研本校&…

centos 端口被占用的快速排查方式

问题笔记 centos 端口被占用的快速排查方式 centos 端口被占用的快速排查方式 这里说一个我刚刚遇到的问题&#xff0c;解决步骤用来记录&#xff0c;方便以后自己查询。 nginx配置完index.html测试文件&#xff0c;发现一直显示的404页面。 我跑到服务器上想重启一下nginx …

强大易用的开源 建站工具Halo

特点 可插拔架构 Halo 采用可插拔架构&#xff0c;功能模块之间耦合度低、灵活性提高。支持用户按需安装、卸载插件&#xff0c;操作便捷。同时提供插件开发接口以确保较高扩展性和可维护性。 ☑ 支持在运行时安装和卸载插件 ☑ 更加方便地集成三方平台 ☑ 统一的可配置设置表…

《自然语言处理(NLP)的最新进展:Transformers与GPT-4的浅析》

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

2023年9月11日-9月16日(上午熟悉公司代码,周一到周五晚上优先工作所急视频教程,其他业余时间进行ue视频教程,为独立游戏做准备)

按照规划&#xff0c;上午熟悉公司源码&#xff0c;下午进行filament和ue渲染&#xff0c;晚上写工作代码。回家后泛读pbrt或者其他书籍催眠。 业余学习ue的各种视频教程&#xff0c;为独立游戏做准备&#xff08;公司也实行末位淘汰&#xff0c;给自己留条后路&#xff09;。累…

openGauss学习笔记-65 openGauss 数据库管理-创建和管理数据库

文章目录 openGauss学习笔记-65 openGauss 数据库管理-创建和管理数据库65.1 前提条件65.2 背景信息65.3 注意事项65.4 操作步骤65.4.1 创建数据库65.4.2 查看数据库65.4.3 修改数据库65.4.4 删除数据库 openGauss学习笔记-65 openGauss 数据库管理-创建和管理数据库 65.1 前提…

解决deepspeed框架的bug:不保存调度器状态,模型训练重启时学习率从头开始

deepspeed存在一个bug&#xff0c;即在训练时不保存调度器状态&#xff0c;因此如果训练中断后再重新开始训练&#xff0c;调度器还是会从头开始而不是接着上一个checkpoint的调度器状态来训练。这个bug在deepspeed的github中也有其他人提出&#xff1a;https://github.com/mic…

k8s中的容器

目录 容器容器的状态容器的重启策略pause容器init容器 容器 容器的状态 Running&#xff08;运行中&#xff09;&#xff1a;容器正在运行并且正常工作。Waiting&#xff08;等待中&#xff09;&#xff1a;容器正在等待某些条件满足&#xff0c;例如等待其他容器就绪、等待网…