2024.9.25 作业和思维导图

#include <iostream>
#include <stdexcept>
using namespace std;class My_stack
{
private:int * data; //栈空间int capacity;int top;    //栈顶元素的下标
protected:public:/******************成员函数*************///构造函数My_stack(int c = 10):capacity(c),top(-1){data = new int[capacity];cout<<"构造函数"<<endl;}//析构函数~My_stack(){delete []data;cout<<"析构函数"<<endl;}//operator= 赋值给容器适配器My_stack & operator=(const My_stack &R){this->data = R.data;this->top = R.top;return *this;}/*************元素访问******************///My_top   访问栈顶元素int My_top(){cout<<"My_top   访问栈顶元素"<<endl;if (this->top < 0){throw std::underflow_error("栈为空"); // 栈空}return data[this->top];}//show_top   显示栈顶元素void show_top(){cout<<"show_top   显示栈顶元素"<<endl;if (top < 0){throw std::underflow_error("栈为空"); // 栈空}cout<<data[top]<<endl;}void show(){cout<<"show   显示栈内所有元素"<<endl;if (this->top < 0){throw std::underflow_error("栈为空"); // 栈空}for(int i =0;i<=top;i++){cout<<data[i]<<" ";}cout<<endl;}/****************容量******************///emptybool empty() const{return top < 0; // 检查栈是否为空}//sizeint size() const{return top + 1; // 返回栈的大小}/***************修改器******************///pushvoid push(int value){if (top >= capacity - 1){throw std::overflow_error("栈溢出"); // 栈满}data[++top] = value; // 入栈}//popvoid pop(){if (top < 0){throw std::underflow_error("栈为空"); // 栈空}--top; // 出栈}//swapvoid swap(My_stack &other){//如果容量不足就报错if(this->top>other.capacity||other.top>this->capacity){throw std::underflow_error("栈数据交换失败"); // 栈空}for(int i = 0;i<=top;i++){int temp = this->data[i];this->data[i] = other.data[i];other.data[i] = temp;}int temp = this->top;this->top = other.top;other.top = temp;}};int main()
{My_stack s1;s1.push(10);s1.push(4);s1.push(6);s1.push(8);s1.My_top();s1.show_top();s1.show();return 0;
}

队列

#include <iostream>
#include <stdexcept>
using namespace std;class My_queue
{
private:int* data;      // 队列空间int capacity;   // 队列容量int front;      // 队头元素的下标int rear;       // 队尾元素的下标int count;      // 当前元素数量public:/******************成员函数*************/// 构造函数My_queue(int c = 10) : capacity(c), front(0), rear(-1), count(0){data = new int[capacity];cout << "构造函数" << endl;}// 析构函数~My_queue(){delete[] data;cout << "析构函数" << endl;}// 赋值运算符重载My_queue& operator=(const My_queue& R){if (this != &R){delete[] data; // 释放旧内存capacity = R.capacity;front = R.front;rear = R.rear;count = R.count;data = new int[capacity];for (int i = 0; i < count; i++){data[i] = R.data[(front + i) % capacity];}}return *this;}/*************元素访问******************/// 队头元素int My_front(){cout << "My_front   访问队头元素" << endl;if (count == 0){throw std::underflow_error("队列为空"); // 队列空}return data[front];}// 显示队头元素void show_front(){cout << "show_front   显示队头元素" << endl;if (count == 0){throw std::underflow_error("队列为空"); // 队列空}cout << data[front] << endl;}// 显示所有元素void show(){cout << "show   显示队列内所有元素" << endl;if (count == 0){throw std::underflow_error("队列为空"); // 队列空}for (int i = 0; i < count; i++){cout << data[(front + i) % capacity] << " ";}cout << endl;}/****************容量******************/// emptybool empty() const{return count == 0; // 检查队列是否为空}// sizeint size() const{return count; // 返回队列的大小}/***************修改器******************/// 入队void enqueue(int value){if (count >= capacity){throw std::overflow_error("队列溢出"); // 队列满}rear = (rear + 1) % capacity; // 循环队列data[rear] = value; // 入队count++;}// 出队void dequeue(){if (count == 0){throw std::underflow_error("队列为空"); // 队列空}front = (front + 1) % capacity; // 循环队列count--;}
};int main()
{My_queue q;q.enqueue(10);q.enqueue(4);q.enqueue(6);q.enqueue(8);q.My_front();q.show_front();q.show();q.dequeue(); // 出队q.show(); // 显示队列内容return 0;
}

 

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

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

相关文章

利士策分享,动摇时刻的自我救赎

利士策分享&#xff0c;动摇时刻的自我救赎 在人生的长河中&#xff0c;我们每个人都会面临各种挑战与抉择&#xff0c; 那些让人心生动摇的瞬间&#xff0c;如同夜空中偶尔掠过的乌云&#xff0c;遮蔽了前行的星光。 但正是这些动摇&#xff0c;构成了我们成长的轨迹&#x…

C++/CLI编程知识点小记

1.前言 本篇博文并非详细的C/CLI教程&#xff0c;仅是博主就学习和实践总结的部分知识点记录。 第一次接触C/CLI是2017年了&#xff0c;用C编写底层库&#xff0c;C/CLI编写wrapper层&#xff0c;在C#项目中进行调用&#xff0c;开发应用。 2.内容 C/CLI是一种混合编程&…

使用Maven创建一个Java项目并在repository中使用

JDK环境&#xff1a;1.8.0_371 Maven环境 &#xff1a;Apache Maven 3.6.3 配置完成jdk和mvn后&#xff0c;进入到指定文件夹下执行如下语句&#xff1a; mvn archetype:generate -DgroupIdtop.chengrongyu -DartifactIdCyberSpace -DarchetypeArtifactIdmaven-archetype-quic…

Android开发okhttp下载图片带进度

Android开发okhttp下载图片带进度 下载网络图片的方法有很多&#xff0c;这次介绍写用okhttp来下载网络图片&#xff0c;主要我看中的是用okhttp下载有进度返回&#xff0c;提示下用户 一、思路&#xff1a; 用OkHttpClient().newCall(request) 二、效果图&#xff1a; 三、…

AI大模型助力数据消费,构建数据飞轮科学、高效的体系

随着互联网的技术高速发展&#xff0c;越来越多的应用层出不穷&#xff0c;伴随着数据应用的需求变多&#xff0c;为快速响应业务需求&#xff0c;很多企业在初期没有很好的规划的情况下&#xff0c;存在不同程度的烟囱式的开发模式&#xff0c;这样会导致企业不同业务线的数据…

分布式Id生成策略-美团Leaf

之前在做物流相关的项目时候&#xff0c;需要在分布式系统生成运单的id。 1.需求&#xff1a; 1.全局唯一性&#xff1a;不能出现重复的ID。&#xff08;基本要求&#xff09; 2.递增&#xff1a;大多数关系型数据库&#xff08;如 MySQL&#xff09;使用 B 树作为索引结构。…

大数据 flink 01 | 从零环境搭建 简单Demo 运行

什么是Flink Flink是一个开源的流处理和批处理框架,它能够处理无界和有界的数据流&#xff0c;具有高吞吐量、低延迟和容错性等特点 Flink 可以应用于多个领域如&#xff1a;实时数据处理、数据分析、机器学习、事件驱动等。 什么是流式处理&#xff1f;什么是批处理 流处理…

吴师兄:非科班程序员,创作出Github标星75.3K的宝藏项目,一周爆火……

这是《开发者说》的第18期&#xff0c;今天我们采访的是在Github上传LeetCode动画题解&#xff0c;获得75.3K标星宝藏项目的程序员吴师兄。 吴师兄从985大学毕业&#xff0c;从通信工程外包零基础转码程序员&#xff0c;逐渐进入一些中厂和大厂&#xff0c;工资也从三四千起步…

Elasticsearch——介绍、安装与初步使用

目录 1.初识 Elasticsearch1.1.了解 ES1.1.1.Elasticsearch 的作用1.1.2.ELK技术栈1.1.3.Elasticsearch 和 Lucene1.1.4.为什么不是其他搜索技术&#xff1f;1.1.5.总结 1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排 1.3.Elasticsearch 的一些概念1.3.1.文档和字…

C++之stack 和 queue

目录 前言 1.stack的介绍和使用 1.1 stack的介绍 1.2 stack的使用 1.3 stack 的模拟 2. queue的介绍和使用 2.1 queue的介绍 2.2 queue的使用 2.3 queue的模拟 3.适配器 3.1 什么是适配器 3.2 STL标准库中stack和queue的底层结构 3.3 deque 的介绍&#xff08;了解&…

智慧城市主要运营模式分析

(一)运营模式演变 作为新一代信息化技术落地应用的新事物,智慧城市在建设模式方面借鉴了大量工程建设的经验,如平行发包(DBB,Design-Bid-Build)、EPC工程总承包、PPP等模式等,这些模式在不同的发展阶段和条件下发挥了重要作用。 在智慧城市发展模式从政府主导、以建为主、…

一日连发两款视频大模型,火山引擎杀疯了!

9月24日&#xff0c;字节跳动旗下火山引擎在深圳举办AI创新巡展&#xff0c;并首次对外发布豆包视频生成-PixelDance、豆包视频生成-Seaweed两款AI大模型&#xff0c;并公布了多项AI大模型的全新升级&#xff0c;以一种全新的姿态迎接AI时代的到来。 雷科技此次受邀参与巡展&a…

David律所代理Jose Martin幽默水果版权首发维权,尚未TRO

案件基本情况&#xff1a;起诉时间&#xff1a;2024/9/18案件号&#xff1a;2024-cv-08484原告&#xff1a;Jose Martin原告律所&#xff1a;David起诉地&#xff1a;伊利诺伊州北部法院涉案商标/版权&#xff1a;原告品牌简介&#xff1a;西班牙的卓越艺术家Jose Martin以他非…

深度学习:常见损失函数简介--名称、作用和用法

目录 1. L1 Loss 2. NLL Loss (Negative Log Likelihood Loss) 3. NLLLoss2d 4. Gaussian NLL Loss 5. MSE Loss (Mean Squared Error Loss) 6. BCE Loss (Binary Cross-Entropy Loss) 7. Smooth L1 Loss 8. Cross Entropy Loss 1. L1 Loss 作用&#xff1a;计算预测值…

数据结构(Day18)

一、周学习内容 1、9.18 数据结构&#xff08;Day15&#xff09;-CSDN博客 2、9.19 数据结构&#xff08;Day16&#xff09;-CSDN博客 3、9.20 链表 目的 插入删除不需要移动任何节点&#xff08;元素&#xff09;。 不需要预估存储空间大小&#xff0c;长度动态增长或减小。…

jQuery——jQuery的2把利器

1、jQuery 核心函数 ① 简称&#xff1a;jQuery 函数&#xff0c;即为 $ 或者 jQuery ② jQuery 库向外直接暴露的是 $ 或者 jQuery ③ 引入 jQuery 库后&#xff0c;直接使用 $ 即可 当函数用&#xff1a;$&#xff08;xxx&#xff09; 当对象用&#xff1a;$.xxx&#x…

类与对象—python

一、类的含义 1.1类的作用&#xff08;理解&#xff09; 收集学生信息时&#xff0c;如果让同学们自主填写&#xff0c;信息的顺序、格式不一&#xff0c;内容混乱。如果发给同学们既定的表格&#xff0c;同学们按照规定的顺序、格式进行填写&#xff0c;那信息就会一目了然&…

深度学习03-神经网络01-什么是神经网络?

神经网络的基本概念 人工神经网络&#xff08;Artificial Neural Network&#xff0c;ANN&#xff09;&#xff1a; 是一种模仿生物神经网络的计算模型。由多个神经元&#xff08;或称为节点&#xff09;组成&#xff0c;这些节点通过不同的连接来传递信息。 每个神经元可以接…

Git从了解到操作

Git常用命令 基本的linux命令 ls / ll 查看当前目录( ls 是查看目录有哪些文件夹&#xff0c;ll 是查看隐藏文件)cat 查看文件内容touch 创建文件vi vi编辑器 (使用 vi 编辑器是为了方便展示效果&#xff0c;也可以记事本、editPlus、notPad等其它编辑器) 备注 Git GUl: Gi…

html TAB、table生成

1. 代码 <!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 10px solid #ccc; padding: 30px; mar…