作业0903

1.封装栈 

#include <iostream>using namespace std;class myStack
{
private:int size;  // 大小int capacity;int *ptr;int top;   // 栈顶下标
public:// 无参构造函数myStack():size(0), top(-1), capacity(10) {ptr = new int[capacity];}// 有参构造函数myStack(int c):size(0), top(-1), capacity(c) {ptr = new int[capacity];}// 析构函数~myStack() {delete []ptr;}// 拷贝赋值函数myStack& operator=(myStack& other);// 判空bool empyt();// 判满bool full();// 访问栈顶元素int& get_top();// 返回容纳的元素数int get_size();// 向栈顶插入元素bool push(int e);// 删除栈顶元素bool pop();
};// 拷贝赋值函数
myStack& myStack::operator=(myStack& other)
{delete []ptr;this->size = other.size;this->capacity = other.capacity;this->top = other.top;this->ptr = new int[capacity];memcpy(this->ptr, other.ptr, this->capacity);return *this;
}
// 判空
bool myStack::empyt()
{return top == -1;
}
// 判满
bool myStack::full()
{return top == capacity-1;
}
// 访问栈顶元素
int& myStack::get_top()
{return ptr[top];
}
// 返回容纳的元素数
int myStack::get_size()
{return size;
}
// 向栈顶插入元素
bool myStack::push(int e)
{if(full()){return false;}top++;ptr[top] = e;size++;return true;
}
// 删除栈顶元素
bool myStack::pop()
{if(empyt()){return false;}top--;size--;return true;
}int main()
{myStack S1(5);for(int i=0; i<10; i++){S1.push(i+1);cout << "size = " << S1.get_size() << endl;if(!S1.empyt()){cout << "S1[top] = " << S1.get_top() << endl;}}cout << "--------------------------" << endl;myStack S2 = S1;cout << "S2[top] = " << S2.get_top() << endl;for(int i=0; i<10; i++){S2.pop();cout << "size = " << S2.get_size() << endl;if(!S2.empyt()){cout << "S2[top] = " << S2.get_top() << endl;}}cout << "--------------------------" << endl;return 0;
}

 

2.封装队列

#include <iostream>using namespace std;class myQueue
{
private:int front;  // 队首int back;   // 队尾int size;   // 大小int capacity;// 容量int *ptr;
public:// 无参构造myQueue():front(0), back(0), size(0), capacity(10) {ptr = new int[capacity];}// 有参构造myQueue(int c):front(0), back(0), size(0), capacity(c) {ptr = new int[capacity];}// 析构函数~myQueue() {delete []ptr;}// 拷贝赋值函数myQueue& operator=(myQueue& other);// 判空bool empty();// 判满bool full();// 访问队首元素int& get_front();// 访问队尾元素int& get_back();// 返回容纳的元素数int get_size();// 向队尾插入元素bool push(int e);// 删除队首元素bool pop();
};// 拷贝赋值函数
myQueue& myQueue::operator=(myQueue& other)
{delete []ptr;this->size = other.size;this->front = other.front;this->back = other.back;this->capacity = other.capacity;this->ptr = new int[this->capacity];memcpy(this->ptr, other.ptr, this->capacity);return *this;
}// 判空
bool myQueue::empty()
{return front == back;
}// 判满
bool myQueue::full()
{return (back+1)%capacity == front;
}// 访问队首元素
int& myQueue::get_front()
{return ptr[front];
}// 访问队尾元素
int& myQueue::get_back()
{return ptr[back-1];
}// 返回容纳的元素数
int myQueue::get_size()
{return size;
}// 向队尾插入元素
bool myQueue::push(int e)
{if(full()){return false;}ptr[back] = e;back = (back+1)%capacity;size++;return true;
}// 删除队首元素
bool myQueue::pop()
{if(empty()){return false;}front = (front+1)%capacity;size--;return true;
}int main()
{myQueue q1(5);cout << "size = " << q1.get_size() << endl;cout << "--------------------------" << endl;q1.push(666);cout << "q1[front] = " << q1.get_front() << endl;cout << "q1[back] = " << q1.get_back() << endl;cout << "size = " << q1.get_size() << endl;cout << "--------------------------" << endl;q1.push(777);q1.push(888);q1.push(999);q1.push(111);   // 入队失败cout << "q1[front] = " << q1.get_front() << endl;cout << "q1[back] = " << q1.get_back() << endl;cout << "size = " << q1.get_size() << endl;cout << "--------------------------" << endl;q1.pop();cout << "q1[front] = " << q1.get_front() << endl;cout << "q1[back] = " << q1.get_back() << endl;cout << "size = " << q1.get_size() << endl;cout << "--------------------------" << endl;myQueue q2 = q1;cout << "q2[front] = " << q2.get_front() << endl;cout << "q2[back] = " << q2.get_back() << endl;cout << "size = " << q2.get_size() << endl;cout << "--------------------------" << endl;return 0;
}

思维导图:

 

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

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

相关文章

Linux Debian12使用flameshot或gnome-screenshot和ImageMagick垂直合并多张图片后组成一张滚动长图

在发布博客&#xff0c;有时需要滚动截长图&#xff0c;虽然在windows系统有滚动截长图的工具&#xff0c;例如&#xff1a;FastStone Capture等&#xff0c;但是Linux Debian系统&#xff0c;这种滚动截长图的工具没有找到合适的。经过自己筛选验证&#xff0c;发现Linux Debi…

基于Bert-base-chinese训练多分类文本模型(代码详解)

目录 一、简介 二、模型训练 三、模型推理 一、简介 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是基于深度学习在自然语言处理&#xff08;NLP&#xff09;领域近几年出现的、影响深远的创新模型之一。在BERT之前&#xff0c;已…

Allure报告下载不同格式的文件

支持类型&#xff1a; class AttachmentType(Enum):def __init__(self, mime_type, extension):self.mime_type mime_typeself.extension extensionTEXT ("text/plain", "txt")CSV ("text/csv", "csv")TSV ("text/tab-sep…

搭建 xxl-job 调度中心

文章目录 1、初始化“调度数据库”2、修改“调度中心”配置3、打包运行”调度中心“ 1、初始化“调度数据库” 请下载项目源码并解压&#xff0c;获取 “调度数据库初始化SQL脚本” 并执行即可。 “调度数据库初始化SQL脚本” 位置为&#xff1a;/xxl-job/doc/db/tables_xxl_j…

【Qt】QLCDNumber | QProgressBar | QCalendarWidget

文章目录 QLCDNumber —— 显示数字QLCDNumber 的属性QLCDNumber 的使用 QProgressBar —— 进度条QProgressBar 的属性创建一个进度条修改为 红色的进度条 QCalendarWidget —— 日历QCalendarWidget 的属性QCalendarWidget 的使用 QLCDNumber —— 显示数字 QLCDNumber 的属…

C++基础多态

目录 学习内容&#xff1a; 1. 多态 1.1 多态的实现 1.2 函数重写&#xff08;override&#xff09; 1.3 虚函数 1.4 使用多态实现的实例 1.5 虚函数的底层实现 1.6 重载&#xff08;voerload&#xff09;、重写&#xff08;override&#xff09;和隐藏&#xff08;h…

DeepWalk【图神经网络论文精读】笔记

链接: DeepWalk【图神经网络论文精读】_哔哩哔哩_bilibili [内容总结::] - deep walk 解决图嵌入问题&#xff1a;将结点压缩成低维向量随机游走&#xff08;类似NLP生成句子&#xff09; 优点与缺点: 相关学习资料 - word2vec 开山必读论文 - DeepWalk 论文阅读 - 代…

若楠带你初识OpenCV(1)-- 视频、图片基础处理,颜色获取

文章目录 OpenCV一、核心功能二、初识OpenCV1. 安装OpenCV2. 读取图片3. 读取灰度图4. 图片保存5. 视频文件读取6. 区域截取7. 提取RGB通道颜色8. 合并颜色通道 总结 OpenCV OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学…

MES 系统中工艺管理--工艺指令管理

一.生产系统柔性&#xff0c;高复用性需求。 工艺路线---------生产线 工序------工位 工艺指令-----具体工步 二.工艺指令分类 1、工艺要求支持配置指令、站点后在过点时&#xff0c;自动调用指令执行。物料、工步、人员作为预留设置&#xff1b; 2、指令主要分ABCD四类&…

Git基础教程:掌握版本控制的秘密

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;C从入门到精通 目录 &#x1f680; 什么是Git &#x1f680; 在本系列博客中所实现的目标 一&#xff1a; &#x1f525; Git 初识 二&#xff1a; &#x1f525; Git 安装 &#x1f34a; Linux-c…

GAMES202——作业4 Kulla-Conty BRDF(BRDF的预计算、重要性采样)

目录 任务 实现 预计算E() 预计算Eavg Bonus1&#xff1a;重要性采样 在实时渲染中使用预计算数据 结果 任务 完成 Kulla-Conty BRDF 模型&#xff0c;关键在于计算 BRDF 的补偿项 f ms &#xff0c;而 f ms 的计算需要 E ( ) 和 E avg 两个前置变量。 1.预计算E() …

【pgAdmin4】创建/删除:数据库Database和数据库表Table

目录 0.环境 1.简介 2.详细步骤 1&#xff09;创建数据库 法一&#xff1a;UI界面创建 法二&#xff1a;sql语句创建数据库 2&#xff09;创建数据库表 查看数据库表 查看数据库表内容 法一&#xff1a;UI界面创建数据库表 法二&#xff1a;sql语句创建数据库表 3&…

快专利与慢专利:速度与质量的天平

在当今快速发展的科技时代&#xff0c;专利成为了创新成果的重要保护手段。然而&#xff0c;不同的创新有着不同的节奏&#xff0c;由此也产生了“快专利”与“慢专利”之分。快专利以其迅速的申请和应用&#xff0c;为创新者抢占市场先机&#xff1b;慢专利则凭借深度的研发和…

【Redis之一:下载安装Redis】

Redis下载与安装 一、下载 Redis 安装包1、 Windows 安装包下载 二、安装Redis1、 Windows 安装Redis 三、配置 Redis1、 Windows 中配置 Redis&#xff08;1&#xff09;配置访问密码&#xff08;2&#xff09;重启 Redis 服务 三、访问 Redis1、命令行访问 Redis&#xff08;…

【福利】最新可用!谷歌搜索和谷歌学术的镜像网站

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 内容来自&#xff1a;https://www.80srz.com/posts/1633.html 谷歌搜索镜像 Google搜索镜像1&#xff1a;https://g.savalone.com/ Google搜索镜像2&…

Python基础笔记

一、python基础1.1 基础知识1.1.1 注释 注释&#xff1a;在程序中对程序代码进行解释说明的文字。 作用&#xff1a;注释不是程序&#xff0c;不能被执行&#xff0c;只是对程序代码进行解释说明&#xff0c;让别人可以看懂程序代码的作用&#xff0c;能够大大增强程序的可读性…

LabVIEW电机多次调用

在LabVIEW中&#xff0c;为实现对多个电机的独立控制&#xff0c;工程师可以采用可重入VI、动态VI调用、多任务结构或面向对象编程等方法。每种方法都有其优点和适用场景&#xff0c;选择合适的方法能有效提升系统的性能和可维护性。 在LabVIEW中&#xff0c;如果需要多次调用…

遥控器显示分别对应的无人机状态详解!!

1. 电量显示 遥控器电量&#xff1a;遥控器上通常会显示自身的电池电量&#xff0c;以提醒用户及时充电。 无人机电量&#xff1a;部分高端遥控器还会显示无人机的电池电量&#xff0c;以进度条或百分比的形式表示&#xff0c;帮助用户了解无人机的续航能力。 2. 飞行模式与…

Mybatis框架——缓存(一级缓存,二级缓存)

本章将简单介绍Mybatis框架中的缓存&#xff0c;欢迎大家点赞➕收藏&#xff0c;蟹蟹&#xff01;&#xff01;&#xff01;&#x1f495; &#x1f308;个人主页&#xff1a;404_NOT_FOUND &#x1f308;MyBatis环境搭建步骤&#xff08;超全解析&#xff01;&#xff01;&am…

hackme靶机攻略

1.通过nmap扫描靶场ip 2.目录扫描 3.找出文件存储位置&#xff0c;看看哪里可以上传文件 4.注册账号登录一下 点击search 5.输入1 and 11 -- 1 and 12 --看看有无SQL注入 6.判断字段数 1 order by 3 -- 说明字段数是3 7.查看数据库 -1 union select database(),2,3 # 8.查…