C++数组栈与链表栈

news2025/4/21 10:04:35

数组栈

#include <iostream>
using namespace std;
class mystack{
private:
	int dat[1000];
	int curr=0;
public:
	void push(int);
	void pop();
	int top();
	bool empyt();
	int size();
};
void mystack::push(int b){
	if(curr<1000){
		dat[curr]=b;
		curr++;
	}
}
void mystack::pop(){
	if(curr>=0){
		curr--;
	}
}
int mystack::top(){
	if(!empyt())return dat[curr-1];
	else return -2147483648;
}
bool mystack::empyt(){
	if(curr==0){
		return 1;
	}
	return 0;
}
int mystack::size(){
	return curr;
}
int main(){
	mystack a;
	a.push(5);
	a.push(10);
	cout<<a.top()<<endl;
	a.pop();
	cout<<a.top()<<endl;
	cout<<a.empyt()<<endl;
	
	
	
	return 0;
}

链表栈

#include <iostream>
using namespace std;
struct node{
	int dat;
	node* next;
};
class mystack{
private:
	node *root=new node;
	node *p =root;
	node *curr;
public:
	void reset();
	void push(int);
	void pop();
	int top();
	bool empyt();
	int size();
};
void mystack::reset(){
	p->next=NULL;
}
void mystack::push(int b){
	p->next=new node;
	p->next->dat=b;
	p=p->next;
	p->next=NULL;
}
void mystack::pop(){
	if(p!=root){
		curr=p;
		p=root;
		while(p->next!=curr){
			p=p->next;
		}
		delete curr;
		p->next=NULL;
	}
}
int mystack::top(){
	if(!empyt()){
		curr=root;
		while(curr->next!=NULL){
			curr=curr->next;
		}
		return curr->dat;
	}
	else return -2147483648;
}
bool mystack::empyt(){
	if(p==root){
		return 1;
	}
	return 0;
}
int mystack::size(){
	int num=0;
	curr=root;
	while(curr->next!=NULL){
		curr=curr->next;
		num++;
	}
	return num;
}
int main(){
	mystack a;
	a.reset();
	a.push(5);
	a.push(10);
	cout<<a.top()<<endl;
	a.pop();
	cout<<a.top()<<endl;
	cout<<a.empyt()<<endl;
	a.pop();
	cout<<a.empyt()<<endl;

	
	return 0;
}

 

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

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

相关文章

QT实现串口透传的功能

在一些产品的开发的时候&#xff0c;需要将一个串口的数据发送给另外一个串口进行转发。 具体的代码如下&#xff1a; #include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::Ma…

动态规划入门:背包问题求具体方案(以0-1背包问题为例)

本质&#xff1a;有向图最短&#xff08;长&#xff09;路问题 字典序最小方案&#xff1f;--贪心思路&#xff1f;&#xff08;本题未使用&#xff09; 分析第一个物品&#xff1a; 写代码时tip&#xff1a;要考虑“边读边做”还是“先读后做” #include<iostream> #i…

WEMOS LOLIN32 开发板引脚布局和技术规格

&#x1f517; 快速链接ESP32 Development Boards, Sensors, Tools, Projects and More https://megma.ma/wp-content/uploads/2021/08/Wemos-ESP32-Lolin32-Board-BOOK-ENGLISH.pdf WEMOS LOLIN32 Development Board Details, Pinout, Specs WEMOS LOLIN32 Development Board …

mysql中的group by用法详解

MySQL中的GROUP BY是数据聚合分析的核心功能&#xff0c;主要用于将结果集按指定列分组&#xff0c;并结合聚合函数进行统计计算。以下从基本语法到高级用法进行详细解析&#xff1a; 一、基本语法与核心功能 SELECT 分组列, 聚合函数(计算列) FROM 表名 [WHERE 条件] GROUP B…

java基础从入门到上手(九):Java - List、Set、Map

一、List集合 List 是一种用于存储有序元素的集合接口&#xff0c;它是 java.util 包中的一部分&#xff0c;并且继承自 Collection 接口。List 接口提供了多种方法&#xff0c;用于按索引操作元素&#xff0c;允许元素重复&#xff0c;并且保持插入顺序。常用的 List 实现类包…

从malloc到free:动态内存管理全解析

1.为什么要有动态内存管理 我们已经掌握的内存开辟方法有&#xff1a; int main() {int val 20;//在栈空间上开辟四个字节char arr[20] { 0 };//在栈空间上开辟10个字节的连续空间return 0; }上述开辟的内存空间有两个特点&#xff1a; 1.空间开辟的时候大小已经固定 2.数组…

AutoSAR从概念到实践系列之MCAL篇(二)——Mcu模块配置及代码详解(上)

欢迎大家学习我的《AutoSAR从概念到实践系列之MCAL篇》系列课程,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。 学习过程中如有任何疑问,可底下评论! 如果觉得文章内容在工作学习中有帮助到你,麻烦点赞收藏评论+关注走一波!感谢各位的支持! 根据上一篇内容中…

【数据库】事务

目录 1. 什么是事务&#xff1f; 2. 事务的ACID特性 3. 为什么使用事务&#xff1f; 4. 如何使用事务 4.1 查看支持事务的存储引擎 4.2 语法 4.3 保存点 4.4 自动/手动提交事务 5. 事物的隔离性和隔离级别 5.1 什么是隔离性 5.2 隔离级别 5.3 查看和设置隔离级别 1…

使用Redis实现实时排行榜

为了实现一个实时排行榜系统&#xff0c;我们可以使用Redis的有序集合&#xff08;ZSet&#xff09;&#xff0c;其底层通常是使用跳跃表实现的。有序集合允许我们按照分数&#xff08;score&#xff09;对成员&#xff08;member&#xff09;进行排序&#xff0c;因此非常适合…

6. 字符串

1.反转字符串 2.替换数字 3.反转字符串中的单词 4.KMP算法 5.重复的子字符串&#xff08;看具体证明&#xff09; 太6了&#xff08;真不是人做的&#xff09;

Redis ④-通用命令

Redis 是一个 客户端-服务器 结构的程序&#xff0c;这与 MySQL 是类似的&#xff0c;这点需要牢记&#xff01;&#xff01;&#xff01; Redis 固然好&#xff0c;但也不是任何场景都适合使用 Redis&#xff0c;一定要根据当前的业务需求来选择是否使用 Redis Redis 通用命令…

卷积神经网络(CNN)与VGG16在图像识别中的实验设计与思路

卷积神经网络&#xff08;CNN&#xff09;与VGG16在图像识别中的实验设计与思路 以下从基础原理、VGG16架构解析、实验设计步骤三个层面展开说明&#xff0c;结合代码示例与关键参数设置&#xff0c;帮助理解其应用逻辑。 一、CNN与VGG16的核心差异 基础CNN结构 通常包含33~55个…

玩机搞机基本常识-------小米OLED屏幕机型怎么设置为永不休眠_手机不息屏_保持亮屏功能 拒绝“烧屏” ?

前面在帮一位粉丝解决小米OLED机型在设置----锁屏下没有永不休眠的问题。在这里&#xff0c;大家要明白为什么有些小米机型有这个设置有的没有的原因。区分OLED 屏幕和 LCD屏幕的不同。从根本上拒绝烧屏问题。 OLED 屏幕的一些优缺点&#x1f49d;&#x1f49d;&#x1f49d; …

2021-11-14 C++三七二十一数

缘由c编程怎么写&#xff0c;紧急求解-编程语言-CSDN问答 void 三七二十一数() {//缘由https://ask.csdn.net/questions/7566632?spm1005.2025.3001.5141int n 0, a 0, b 0, p 1;std::cin >> n;while (n--){std::cin >> a >> b;while (a<b){if (a %…

安全生产责任制考核方案与风险评估

安全生产责任制考核方案旨在通过有效落实国家安全生产法律法规&#xff0c;确保煤矿及相关单位的安全管理机制建立与运行&#xff0c;减少生产安全事故的发生。方案强调通过定期的量化考核和系统化评估&#xff0c;确保安全生产责任的有效落实。考核涉及集团公司各单位及相关人…

强制重装及验证onnxruntime-gpu是否正确工作

#工作记录 我们经常会遇到明明安装了onnxruntime-gpu或onnxruntime后&#xff0c;无法正常使用的情况。 一、强制重新安装 onnxruntime-gpu 及其依赖 # 强制重新安装 onnxruntime-gpu 及其依赖 pip install --force-reinstall --no-cache-dir onnxruntime-gpu1.18.0 --extra…

设计模式 --- 外观模式

外观模式是一种结构型设计模式&#xff0c;为复杂子系统提供​​统一的高层接口​​&#xff0c;通过定义一个外观类来​​简化客户端与子系统的交互​​&#xff0c;降低系统耦合度。这种模式隐藏了子系统的复杂性&#xff0c;将客户端与子系统的实现细节隔离开来&#xff0c;…

用python脚本怎么实现:把一个文件夹里面.png文件没有固定名称,复制到另外一个文件夹按顺序命名?

环境&#xff1a; python3.10 Win10 问题描述&#xff1a; 用python脚本怎么实现&#xff1a;怎么把一个文件夹里面.png文件没有固定名称&#xff0c;复制到另外一个文件夹按顺序命名&#xff1f; 解决方案&#xff1a; 1.新建一个脚本文件&#xff0c;内容如下&#xff1…

山东大学软件学院创新项目实训开发日志(20)之中医知识问答自动生成对话标题bug修改

在原代码中存在一个bug&#xff1a;当前对话的标题不是现有对话的用户的第一段的前几个字&#xff0c;而是历史对话的第一段的前几个字。 这是生成标题的逻辑出了错误&#xff1a; 当改成size()-1即可

ZYNQ笔记(十):XADC (PS XDAC 接口)

版本&#xff1a;Vivado2020.2&#xff08;Vitis&#xff09; 任务&#xff1a;通过 PS XADC 接口读取XADC测量的芯片温度、供电电压&#xff0c;并通过串口打印出来 目录 一、介绍 二、硬件设计 三、软件设计 四、效果 一、介绍 XADC&#xff08;Xilinx Analog-to-Digital…