c++ day06

news/2024/11/17 1:34:12/

类的栈 实现

#include <iostream>using namespace std;class Stack
{
private:static const size_t MAX = 100; // 定义固定容量int data[MAX];                  // 存储栈元素的数组size_t len;                       // 当前栈的大小public:// 构造函数Stack() : len(0) {}// top 操作int& top(){return data[len - 1]; // 返回栈顶元素}// empty 操作bool empty() const{return len == 0;}// size 操作size_t size() const{return len;}// push 操作void push(int value){if (len < MAX){data[len++] = value;}else{cout << "错误" << endl; // 栈溢出处理}}// pop 操作void pop(){if (!empty()){--len;}else{cout << "错误" << endl; // 栈下溢出处理}}
};// 示例使用
int main()
{Stack s;s.push(1);s.push(2);s.push(3);cout << "栈顶: " << s.top() << endl; // 输出 3cout << "栈大小: " << s.size() << endl; // 输出 3s.pop();cout << "pop后的栈顶: " << s.top() << endl; // 输出 2return 0;
}

 用类实现队列

#include <iostream>using namespace std;class Queue
{
private:static const size_t max = 100; // 定义固定容量int data[max];                 // 存储队列元素的数组size_t top;                    // 队首索引size_t tail;                   // 队尾索引size_t len;                    // 当前队列的大小public:// 构造函数Queue() : top(0), tail(0), len(0) {}// front 操作int& front(){return data[top]; // 返回队首元素}// back 操作int& back(){return data[(tail - 1 + max) % max]; // 返回队尾元素}// empty 操作bool empty() const{return len == 0;}// size 操作size_t size() const{return len;}// push 操作void push(int value){if (len < max){data[tail] = value;tail = (tail + 1) % max;++len;}else{cout << "错误" << endl; // 队列溢出处理}}// pop 操作void pop(){if (!empty()){top = (top + 1) % max;--len;}else{cout << "错误" << endl; // 队列下溢出处理}}
};// 示例使用
int main()
{Queue q;q.push(1);q.push(2);q.push(3);cout << "队首: " << q.front() << endl; // 输出 1cout << "队尾: " << q.back() << endl;   // 输出 3cout << "队列的长度: " << q.size() << endl;     // 输出 3q.pop();cout << "pop后的队首: " << q.front() << endl; // 输出 2return 0;
}


http://www.ppmy.cn/news/1530854.html

相关文章

Java基础知识扫盲

目录 Arrays.sort的底层实现 BigDecimal(double)和BigDecimal(String)有什么区别 Char可以存储一个汉字吗 Java中的Timer定时调度任务是咋实现的 Java中的序列化机制是咋实现的 Java中的注解是干嘛的 Arrays.sort的底层实现 Arrays.sort是Java中提供的对数组进行排序的…

后端开发刷题 | 最长无重复子数组

描述 给定一个长度为n的数组arr&#xff0c;返回arr的最长无重复元素子数组的长度&#xff0c;无重复指的是所有数字都不相同。 子数组是连续的&#xff0c;比如[1,3,5,7,9]的子数组有[1,3]&#xff0c;[3,5,7]等等&#xff0c;但是[1,3,7]不是子数组 数据范围&#xff1a;0…

自动驾驶中的决策规划技术分享--轻舟智航

文章目录 0.概述&#xff1a;1 导航模块2 决策模块2.1 车道决策2.2 障碍物决策 3 轨迹规划3.1 时空分离规划3.2 时空联合规划 4 对比 0.概述&#xff1a; 李仁杰&#xff0c;轻舟智航规划算法负责人&#xff0c;自动驾驶决策与规划技术专家。 在自动驾驶系统中&#xff0c;决策…

SQLPlus执行成功但数据没有更新的原因及解决办法

在使用 sqlplus 执行 SQL 文件时&#xff0c;如果执行成功但数据没有更新&#xff0c;可能有以下几个原因导致&#xff1a; 1. 没有提交事务 在 Oracle 数据库中&#xff0c;执行 UPDATE, INSERT, DELETE 等操作后&#xff0c;默认不会自动提交事务。如果没有显式地提交事务&…

vue3 + ts + pnpm:nprogress / 页面顶部进度条

一、简介 nprogress 是一个轻量级的进度条库&#xff0c;它适用于在网页上添加顶部进度条&#xff0c;用于指示页面加载进度或任何长时间的运行过程。这个库非常流行&#xff0c;因为它易于使用且视觉效果很好。 二、安装 pnpm add nprogress 三、在使用的页面引入 / src/v…

(done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)

来源&#xff1a;https://www.youtube.com/watch?vdaB9naGBVv4 模拟信号特点如下 时域连续(x轴) 振幅连续(y轴) 如下是模拟信号的一个例子&#xff1a; 数字信号特点如下&#xff1a; 一个离散值序列 数据点的值域是一系列有限的值 ADC&#xff1a;模拟信号到数字信号的…

制作一个rabbitmq-sdk以及rabbitmq消费者实现定时上下线功能

目录结构 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">&l…

JavaScript 学习

一、输出 为方便调试可以输出内容&#xff0c;但是用户是看不到的。要在开发者模式中看。 console . log ( "Hello" )&#xff1b; 二、外部文件引用 可以直接在html中写JS <head> <meta charset"utf-8"> <script> console.log("he…