C++ 学习 2024.9.3

封装栈与队列

栈:

#include <iostream>using namespace std;class Stack
{
private:int *a;      //动态数组存储元素int size;    //栈容量int top;   //栈顶元素索引
public://有参构造Stack(int size):size(size),top(-1){a=new int[size];}//析构~Stack(){delete[]a;}//判空bool empty(){return top==-1;}//入栈void push_in(int const &e){if(top+1==size)  //二倍扩容{int *newa=new int[size*2];for(int i=0;i<size;++i){newa[i]=a[i];}delete[]a;a=newa;size*=2;}a[++top]=e;}//出栈void pop(){if(empty()){cout<<"栈为空,出栈失败"<<endl;}else{--top;}}//栈内元素个数int size_1(){if(empty())  //栈空{return 0;}return top+1;}//访问栈顶元素void at_top(){if(!empty()){cout<<"栈顶元素为:"<<a[top]<<endl;}else{cout<<"栈为空"<<endl;}}//展示函数void show(){cout<<"栈内元素为"<<endl;for(int i=0;i<=top;i++){cout<<a[i]<<" ";}cout<<endl;}
};int main()
{Stack s(10);s.push_in(5);s.push_in(2);s.push_in(0);s.show();             //5 2 0int count=s.size_1();cout<<"栈内元素个数为:"<<count<<endl;s.push_in(9); s.show();           //5 2 0 9s.pop();cout<<"执行一次pop函数后"<<endl;s.show();          //5 2 0s.at_top();   //访问栈顶元素s.pop();s.pop();s.pop();   //此时栈为空s.pop();return 0;
}

队列:

#include <iostream>using namespace std;
int count=0;
class Queue
{
private:int *a;     //动态数组存储int size;    //队列容量int front;   //队头元素索引int last;  //队尾元素索引
public://有惨构造Queue(int size):size(size),front(0),last(0){a=new int[size];}//析构函数~Queue(){delete []a;}//判空bool empty(){return front==last;}//访问队头元素void at_front(){if(empty()){cout<<"队列为空"<<endl;}else{cout<<"队头元素为:"<<a[front]<<endl;}}//访问队尾元素void at_last(){if(empty()){cout<<"队列为空"<<endl;}else{cout<<"队尾元素为:"<<a[(last+size-1)&size]<<endl;}}//队列中元素个数int size_1(){if(empty())  //栈空{return 0;}return last-front;}//向队尾插入元素void push_in(int const &e){if((last+1)%size==front)   //二倍扩容{int *newa=new int[size*2];for(int i=0;i<size;++i){newa[i]=a[(front+i)&size];}delete []a;a=newa;size*=2;front=0;last=size/2;}a[last]=e;last=(last+1)%size;count++;}//删除首个元素void pop(){if(empty()){cout<<"队列为空"<<endl;}else{front++;front%=size;}}//展示函数void show(){if(empty()){cout<<"队列为空"<<endl;}else{cout<<"队列中元素为:"<<"";for(int i=front;i<count;i++){cout<<a[i]<<" ";}cout<<endl;}}
};int main()
{Queue q(10);q.push_in(1);q.push_in(3);q.push_in(1);q.push_in(4);q.show();       //1 3 1 4int haha=q.size_1();cout<<"队列中元素个数为:"<<haha<<endl;   //4q.pop();cout<<"执行一次pop函数后"<<endl;q.show();  //3 1 4q.at_front();q.at_last();    //访问队尾元素一直显示0  抓耳挠腮仍无法解决return 0;
}

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

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

相关文章

在SpringBoot项目中使用多线程(配合线程池)加快从MySQL导入数据到ElasticSearch的速度

文章目录 1. 准备工作1.1 索引库1.2 建表1.3 实体类1.3.1 item.java1.3.2 itemDocument.java 1.4 编写配置文件1.5 编写 Mapper 类和 Service 类 2. 没有使用多线程的情况2.1 编码2.2 测试结果 3. 使用多线程&#xff08;配合线程池&#xff09;的情况3.1 自定义类&#xff0c;…

python与pytroch相关

1.pytroch模型类 PyTorch 是一个易学且清晰明了的深度学习库。本节讲解如何查看一个模型的结构。 首先&#xff0c;最简单创建模型的方式如下&#xff1a; #导入必要的库 import torch.nn as nn myNetnn.Sequential(nn.Linear(2,10),#第一层&#xff08;全连接层&#xff09;&…

【苍穹外卖】Day 5 Redis、店铺营业状态接口

1 基本介绍 Redis是一个基于 内存 的 key-value 结构数据库 基于内存存储&#xff0c;读写性能高适合存储热点数据(热点商品、资讯、新闻)企业应用广泛 运行 在cmd下 redis-server.exe redis.windows.conf 启动状态下&#xff0c;再 redis-cli.exe 测试&#xff1a; 也可以…

继承 继承 继承 屁

1.栈 #include <iostream>using namespace std; class Stack {int *ptr;int size; public://无参构造Stack():size(-1){ptrnew int[8];cout<<"无参构造"<<endl;}//有参构造Stack(int a):size(0){ptrnew int[8];ptr[0]a;cout<<"有参构造…

Phalcon 增删改查的搭建过程

一 结果展示 先展示效果: 1 查询: 2 删除 3 插入 插入之前,数据库里面表的数据如下: 插入之后:

性能优化:自动化处理系统设计

性能优化&#xff1a;自动化处理系统设计 前言需求分析系统设计1. 调度中心2. 任务执行器3. 错误处理机制4. 通知系统5. 报表生成器6. 日志记录器 技术实现结语 前言 在当今这个信息爆炸、技术日新月异的时代&#xff0c;企业面临着前所未有的挑战和机遇。随着业务量的不断增长…

第十九篇——行军篇:侦察兵的32条行军法则

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 微观层面也有很多值得去注意&#xff0c;刻意练习的地方&#xff1b;看似…

深度探索Unity与C#:编织游戏世界的奇幻篇章

在数字编织的梦幻之境中&#xff0c;Unity游戏引擎与C#编程语言如同双生子&#xff0c;共同编织着游戏世界的奇幻篇章。《Unity游戏开发实战&#xff1a;从零到C#高手》这本书&#xff0c;不仅仅是技术的堆砌&#xff0c;它更像是一位智慧导师&#xff0c;引领着我们深入探索这…

html+css+js网页设计 专业知识 珠宝历史10个页面

htmlcssjs网页设计 专业知识 珠宝历史10个页面 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 …

【算法】贪心算法解析:基本概念、策略证明与代码例题演示

文章目录 1. 什么是贪心算法&#xff1f;2. 贪心算法的特点3. 例题&#xff08;贪心策略&#xff09;① 找零问题② 最小路径和③ 背包问题 4. 贪心策略证明 1. 什么是贪心算法&#xff1f; 在学习贪心算法之前&#xff0c;一定要理解的是贪心策略&#xff1a; 贪心策略是一种…

美畅物联丨科技赋能校车安全:智慧监控管理系统的创新应用

1、背景 1.1应用需求 孩子&#xff0c;作为国家未来的希望之星和民族发展的潜力所在&#xff0c;其安全与健康向来都是社会瞩目的核心要点。校车&#xff0c;作为孩子们日常出行的关键交通载体&#xff0c;其安全性更是时刻牵动着每一个家庭的敏感神经。然而&#xff0c;不可…

JavaSwing项目ATM自动提款机(mysql数据库)+详细报告

目 录 第一章 引言... 1 1.1 设计目的... 1 1.2 相关开发工具介绍... 1 第二章 数据库需求分析... 2 2.1 系统功能分析... 2 2.2 功能模块设计... 2 第三章 数据库概念结构设计... 3 3.1 概念模型... 3 3.2 E-R图... 3 第四章 数据库逻辑结构设计... 4 4.1 关系模型设计... 4 …

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…

【Datawhale X 李宏毅苹果书 AI夏令营】《深度学习详解》Task3 打卡

文章目录 前言学习目标一、优化策略二、模型偏差三、优化问题三、过拟合增加训练集给模型一些限制 四、交叉验证五、不匹配总结 前言 本文是【Datawhale X 李宏毅苹果书 AI夏令营】的Task3学习笔记打卡。 学习目标 李宏毅老师对应视频课程&#xff1a;https://www.bilibili.…

深度强化学习算法(六)(附带MATLAB程序)

深度强化学习&#xff08;Deep Reinforcement Learning, DRL&#xff09;结合了深度学习和强化学习的优点&#xff0c;能够处理具有高维状态和动作空间的复杂任务。它的核心思想是利用深度神经网络来逼近强化学习中的策略函数和价值函数&#xff0c;从而提高学习能力和决策效率…

js控制滚轮横向滚动

获取元素&#xff0c;使用一下方法 let box document.getElementById("table_box");box.addEventListener("wheel", function (e) {//这里使用的是 chrom浏览器测试的,有一些Api不太准确 ,请大家注意!!!!let left -e.wheelDelta || e.deltaY / 2;box.sc…

JavaScript中console.log()拼接用逗号和加号的区别

JavaScript中console.log()拼接用逗号和加号的区别 在JavaScript中&#xff0c;console.log()方法可以使用加号&#xff08;&#xff09;或逗号&#xff08;&#xff0c;&#xff09;来拼接字符串。 使用加号&#xff08;&#xff09;时&#xff0c;将两个字符串连接起来&…

多参数水质分析仪

多参数水质分析仪是一种能够同时测量并分析多种水质参数的仪器。其主要功能包括&#xff1a; 测量多种水质参数&#xff1a;多参数水质分析仪可以同时测量多种水质指标&#xff0c;例如pH值、电导率、溶解氧&#xff08;DO&#xff09;、浑浊度、温度等。 高精度测量&#xff…

Android解析异步消息处理机制

文章目录 Android解析异步消息处理机制MessageHandlerMessageQueueLooper Android解析异步消息处理机制 Android中的异步消息处理主要由4个部分组成&#xff1a;Message、Handler、MessageQueue和Looper。其中Message和Handler在上一小节中我们已经接触过了&#xff0c;而Mess…

C语言 | Leetcode C语言题解之第388题文件的最长绝对路径

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b))int lengthLongestPath(char * input){int n strlen(input);int pos 0;int ans 0;int * level (int *)malloc(sizeof(int) * (n 1));memset(level, 0, sizeof(int) * (n 1));while (po…