通用的链栈实现(C++)
template<class T>
class MyStack//链栈
{
private:struct StackNode{T data;StackNode* next;StackNode(const T& val = T(), StackNode* p = nullptr) :data(val), next(p) {}//};StackNode* top;int cursize;void clone(const MyStack& s){Clear();cursize = s.cursize;StackNode* p = s.top;if (p == nullptr)return;top = new StackNode(p->data);StackNode* tail = top;p = p->next;while (p != nullptr){tail=tail->next = new StackNode(p->data);p = p->next;}}
public:MyStack():cursize(0), top(nullptr) {}MyStack(const MyStack& s) :top(nullptr), cursize(s.cursize){clone(s);}MyStack& operator=(const MyStack& s){if (this != &s){clone(s);}return *this;}~MyStack(){Clear();}void Clear(){while (top != nullptr){StackNode* q = top;top = q->next;delete q;}cursize = 0;}int Size()const{return cursize;}bool Empty()const{return Size() == 0;}void Push(const T& val)//入栈{top = new StackNode(val, top);//头插cursize += 1;}const T& Top()const//返回栈顶元素{return top->data;}void Pop()//出栈{StackNode* q = top;top = q->next;delete q;cursize -= 1;}bool GetTop(T& val)//得到栈顶元素并出栈{if (Empty())return false;val = top->data;StackNode* q = top;top = q->next;delete q;cursize -= 1;return true;}};int main()
{MyStack<char>cmys;MyStack<int>imys;MyStack<double> dmys;for (char c = 'a'; c < 'z'; c++){cmys.Push(c);}char val;while (cmys.GetTop(val)){cout << val << endl;}return 0;
}

相关文章:
通用的链栈实现(C++)
template<class T> class MyStack//链栈 { private:struct StackNode{T data;StackNode* next;StackNode(const T& val T(), StackNode* p nullptr) :data(val), next(p) {}//};StackNode* top;int cursize;void clone(const MyStack& s){Clear();cursize s.c…...
物联网AI MicroPython学习之语法 bluetooth蓝牙
学物联网,来万物简单IoT物联网!! bluetooth 介绍 该模块为板上的蓝牙控制器提供了相关接口。目前支持低功耗蓝牙 (BLE)的Central(中央), Peripheral(外设), Broadcaster(广播者&…...
React中的key有什么作用?
一、是什么 首先,先给出react组件中进行列表渲染的一个示例: const data = [ { id: 0, name: abc }, { id: 1, name: def }, { id: 2, name: ghi }, { id: 3, name: jkl } ]; const ListItem = (props) => { return <li>{props.name}</li>; }; con…...
初认识vue,v-for,v-if,v-bind,v-model,v-html等指令
vue 一.vue3介绍 1.为什么data是函数而不是对象? 因为vue是组件开发,组件会多次复用,data如果是对象,多次复用是共享,必须函数返回一个新的对象 1. 官网初识 Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS …...
Java 算法篇-深入了解单链表的反转(实现:用 5 种方式来具体实现)
🔥博客主页: 小扳_-CSDN博客 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 单链表的反转说明 2.0 单链表的创建 3.0 实现单链表反转的五种方法 3.1 实现单链表反转 - 循环复制(迭代法) 3.2 实现单链表反转 - 头插法 3…...
Android 10.0 系统内存优化之修改dalvik虚拟机的内存参数
1.前言 在10.0的系统开发定制中,app应用也是运行在dalvik虚拟机上的,所以对于一些内存低的系统中,在某些大应用会出现耗内存 卡顿情况,这是系统分配的内存不够大,在进行耗内存的操作,就会出现频繁gc等等原因造成不流畅的现象,接下来就分析下 虚拟机分配内存的相关原理 …...
Docker+K8s基础(重要知识点总结)
目录 一、Docker的核心1,Docker引擎2,Docker基础命令3,单个容器运行多个服务进程4,多个容器运行多个服务进程5,备份在容器中运行的数据库6,在宿主机和容器之间共享数据7,在容器之间共享数据8&am…...
IDEA 关闭SpringBoot启动Logo/图标
一、环境 1、SpringBoot 2.6.4 Maven POM格式 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.4</version><relativePath/></parent> 2、IDE…...
提供话费充值接口 话费快充慢充/API独立接口,商城/小程序/公众号合作
话费充值接口文档 接口版本:1.0 ―、引言 文档概述 本文档提供话费充值接口规范说明,提供一整套的完整的接入示例(http 接口)供商户参 考,可以帮助商户开发人员快速完成接口开发与联调,实现与话费充值系统的交易互联。 公司官网…...
[N-133]基于springboot,vue小说网站
开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plus 本项…...
计算机网络:概述
0 学时安排及讨论题目 0.1讨论题目: CSMA/CD协议交换机基本原理ARP协议及其安全子网划分IP分片路由选择算法网络地址转换NATTCP连接建立和释放再论网络体系结构 0.2 本节主要内容 计算机网络在信息时代中的作用 互联网概述 互联网的组成 计算机网络在我国的发展 …...
服务号怎么升级订阅号
服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?首先我们要看一下服务号和订阅号的主要区别。1、服务号推送的消息没有折叠,消息出现在聊天列表中,会像收到消息一样有提醒。而订阅号推送的消息是折叠的,“订阅号…...
11.读取文件长度-fseek和ftell函数的使用
文章目录 简介1. 写入测试文件2. 读取文件长度 简介 主要讲使用fopen读取文件,配合使用fseek和ftell来读取文件长度。1. 写入测试文件 执行下方程序,使用fwrite函数写入40字节的数据,使其形成文件存入本地目录。#define _CRT_SECURE_NO_WARNI…...
视觉大模型DINOv2:自我监督学习的新领域
1 DINOv2 1.1 DINOv2特点 前段时间,Meta AI 高调发布了 Segment Anything(SAM),SAM 以交互式方式快速生成 Mask,并可以对从未训练过的图片进行精准分割,可以根据文字提示或使用者点击进而圈出图像中的特定…...
Java事务详解
一、事务的理解: 1、事务的特性: 1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。 2) 一致性…...
el-table实现展开当前行时收起上一行的功能
<el-tableref"tableRef":data"tableData":expand-row-keys"expandRowKeys":row-key"handleRowKey" // 必须指定 row-keyexpand-change"handleExpandChange" // 当用户对某一行展开或者关闭的时候会触发该事件> <…...
Go的优雅退出
Go优雅退出/停机以前主要通过signal来实现,当然现在也是通过signal来实现,只是从go 1.16开始,新增了更加友好的API: func NotifyContext(parent context.Context, signals ...os.Signal) (ctx context.Context, stop context.CancelFunc) 该…...
【KVM-6】KVM/QEMU软件栈
前言 大家好,我是秋意零。 👿 简介 🏠 个人主页: 秋意零🔥 账号:全平台同名, 秋意零 账号创作者、 云社区 创建者🧑 个人介绍:在校期间参与众多云计算相关比赛&#x…...
硬件知识2
原理图的检查: 网络悬浮 单端网络 电源悬浮(电源和地) 重复的位号 网络短路(电源和地) AD里面双击messages里面的错误项会直接进入到原理图和PCB…...
【Java 进阶篇】JQuery DOM操作:通用属性操作的绝妙魔法
在前端的舞台上,JQuery犹如一位魔法师,为我们展现了操纵HTML元素的奇妙技巧。而在这个技巧的精妙组成中,通用属性操作是一门绝妙的魔法。在本篇博客中,我们将深入研究JQuery DOM操作中的通用属性操作,揭示这段魔法的神…...
QQ 第三方登录(Django)
QQ 第三方登录(Django) 本篇教程完全面向 Django 开发者,从 QQ 互联原理、三端交互流程,到完整代码实现,一步到位,新手可直接复制粘贴跟着操作,避开所有常见踩坑点,兼顾教学和实战需…...
生成剧本杀软件2025推荐,创新剧情设计工具引领潮流
剧本杀软件2025推荐,创新剧情设计工具引领潮流随着剧本杀市场的蓬勃发展,越来越多的创作者和玩家对剧本杀软件的需求日益增长。为了帮助大家在众多选择中找到最适合自己的工具,本文将推荐一款在2025年备受瞩目的剧本杀软件——量子探险AI漫剧…...
论文不同章节降AI策略不同:分章节精准处理的完整教程
论文不同章节降AI策略不同:分章节精准处理的完整教程 上周室友第一次用降AI工具,操作错了好几步,差点浪费机会。觉得有必要写一篇详细教程。 我用的是嘎嘎降AI(www.aigcleaner.com),4.8元一篇,…...
如何用嘎嘎降AI处理文献综述部分:综述专项降AI教程
如何用嘎嘎降AI处理文献综述部分:综述专项降AI教程 这篇教程来自实操经验。帮三个同学处理过论文AI率,加上自己的,前后操作了十几次。把流程总结成教程,尽量详细。 核心工具推荐嘎嘎降AI(www.aigcleaner.com…...
火电行业低成本私有化 RAG 部署
全球 AI 算力市场正处于一场看不见的“围城”之中。 当苹果被曝出为了备战 iOS 18 的 AI 功能,疯狂扫货数千台 NVLX H100 GPU 集群,导致全球高端算力卡供货周期延长至 52 周以上时,对于传统重资产运营的行业——如火电企业——而言ÿ…...
3步彻底解决Windows多显示器DPI缩放难题:SetDPI工具完全指南
3步彻底解决Windows多显示器DPI缩放难题:SetDPI工具完全指南 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 还在为Windows系统下多显示器DPI缩放不一致而烦恼吗?主显示器清晰锐利,副显示器却模糊不堪…...
全贴合工艺中Cover Lens Mura不良的关键影响因素与优化策略
1. 全贴合工艺中的Mura现象解析 第一次看到全贴合屏幕上出现发黄或发白的斑块时,我还以为是产品运输途中受了撞击。后来在产线蹲守三个月才发现,这些被称为"Mura"的光学缺陷,其实是贴合工艺中的隐形杀手。Mura这个词源自日语"…...
DFX测试与专项测试:非功能性测试的深度解析与实践指南
1. DFX测试:产品全生命周期的质量守护者 第一次接触DFX测试这个概念时,我也被这个缩写搞懵了。后来在实际项目中才发现,这其实就是把质量保障前置到设计阶段的绝佳实践。DFX中的"X"就像是个万能变量,可以代入产品生命周…...
深度学习中的 Transformer 架构:从原理到实践
深度学习中的 Transformer 架构:从原理到实践 1. 背景介绍 Transformer 架构是深度学习领域的重大突破,它彻底改变了自然语言处理(NLP)的格局,并逐渐扩展到计算机视觉、语音识别等领域。Transformer 由 Google 团队在 …...
兼容FX3U源码的增强版:支持以太网与串口下载,集成MODBUS-TCP协议,实现相对定位与绝...
18650锂电池高温热失控一、模块概述 FX3U系列PLC CAN网络通信模块是基于STM32F10x系列微控制器开发的专用通信组件,旨在实现多节点PLC设备间的可靠数据交互。该模块采用STM32F10x CAN外设硬件资源,结合自定义应用层协议,支持主从式网络架构&a…...
