栈的操作:进栈,出栈,读栈顶元素

news2024/12/24 11:33:24

代码:

#include<iostream>
using namespace std;
template<class T>
class sq_Stack
{
	private:
		int mm;
		int top;
		T *s;
	public:
		sq_Stack(int);
		void prt_sq_Stack();
		int flag_sq_Stack();
		void ins_sq_Stack(T);
		T del_sq_Stack();
		T read_sq_Stack();
};
template<class T>
sq_Stack<T>::sq_Stack(int m)
{
	mm=m;
	s=new T[mm];
	top=0;
	return;
}
template<class T>
void sq_Stack<T>::prt_sq_Stack()
{
	int i;
	cout<<"top="<<top<<endl;
	for(i=top;i>0;i--)cout<<s[i-1]<<endl;
	return;
}
template<class T>
int sq_Stack<T>::flag_sq_Stack()
{
	if(top==mm)return(-1);
	if(top==0) return(0);
	return(1);
}
template<class T>
void sq_Stack<T>::ins_sq_Stack(T x)
{
	if(top==mm)
	
		{cout<<"Stack overflow!"<<endl;return;}
		top=top+1;
		s[top-1]=x;
		return;

}
template<class T>
T sq_Stack<T>::del_sq_Stack()
{
	T y;
	if(top==0)
	
	{cout<<"Stack underflow1"<<endl;return(0);}
	y=s[top-1];
	top=top-1;
	return(y);
	
}
template<class T>
T sq_Stack<T>::read_sq_Stack()
{
	if(top==0)
	{cout<<"Stack empty!"<<endl;return(0);}
	return(s[top-1]);
}
int main()
{
	sq_Stack<int>s(10);
	s.ins_sq_Stack(50);
	s.ins_sq_Stack(60);
	s.ins_sq_Stack(70);
	s.ins_sq_Stack(80);
	s.ins_sq_Stack(90);
	s.ins_sq_Stack(100);
	cout<<"输出栈顶指针与栈中的元素:"<<endl;
	s.prt_sq_Stack();
	cout<<"栈顶元素:"<<s.read_sq_Stack()<<endl;
	cout<<"输出退栈元素:"<<endl;
	cout<<s.del_sq_Stack()<<endl;
	cout<<s.del_sq_Stack()<<endl;
	cout<<s.del_sq_Stack()<<endl;
	cout<<"再次输出栈顶指针与栈中的元素:"<<endl;
	s.prt_sq_Stack();
	return 0;

}

运行:

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

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

相关文章

高等代数笔记(2)————(弱/强)数学归纳法

数学归纳法的引入情景其实很简单&#xff0c;就是多米诺骨牌。 推倒所有多米诺骨牌的关键就是推倒第一块&#xff0c;以及确保第一块倒下后会带动第二块&#xff0c;第二块带动第三块&#xff0c;以此类推&#xff0c;也就是可以递推。由此我们可以归纳出所有的多米诺骨牌都可…

开箱元宇宙| 探索 Great Entertainment Group 如何利用 Web3 和数字创新重新定义活动体验

有没有想过 Web3 等尖端技术是如何改变娱乐行业的&#xff1f;在本期「开箱元宇宙」系列中&#xff0c;我们与 Great Entertainment Group (GEG) 的 Web3 顾问 Rob Lacey 深度访谈&#xff0c;探讨这家充满活力的公司如何在其活动中开拓数字创新。 与我们一起揭示 GEG 如何将 …

力扣 LCR 020 回文子串 -Python

题目链接&#xff1a;LCR 020. 回文子串 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给定一个字符串 s &#xff0c;请计算这个字符串中有多少个回文子字符串。 具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符组成&#xff0c;也会被视…

python全栈学习记录(十七)logging、json与pickle、time与datatime、random

logging、json与pickle、time与datatime、random 文章目录 logging、json与pickle、time与datatime、random一、logging二.json与pickle三.time与datatime四.random 一、logging logging模块用来记录日志信息。 import logging # 进行基本的日志配置 logging.basicConfig( fi…

pycharm安装教程,超详细

引言 PyCharm官网提供了两个版本&#xff0c;第一个版本是Professional&#xff08;专业版本&#xff09;&#xff0c;这个版本功能更加强大&#xff0c;主要是为Python和web开发者而准备&#xff0c;是需要付费的。第二个版本是社区版&#xff08;Community&#xff09;&…

Qanything 2 0源码解析系列4 图片解析逻辑

Qanything 2.0源码解析系列4: 图片解析逻辑 文章转载自&#xff1a;https://www.feifeixu.top/article/8bb8401b-9689-453f-ab86-e3ecae414e12 &#x1f600; 前言&#xff1a; 这篇文章介绍Qanything针对图片类型文件的处理逻辑 qanything_kernel/core/retriever/general_doc…

面向对象 vs 面向过程

Java 和 C 语言的区别&#xff1a;面向对象 vs 面向过程 在编程世界中&#xff0c;不同的编程语言承载着不同的编程范式。C 语言作为一门经典的面向过程编程语言&#xff0c;注重函数的调用和操作&#xff1b;而Java则是典型的面向对象编程语言&#xff0c;重视对象与类的设计…

【LLM多模态】Animatediff文生视频大模型

note AnimateDiff框架&#xff1a;核心是一个可插拔的运动模块&#xff0c;它可以从真实世界视频中学习通用的运动先验&#xff0c;并与任何基于相同基础T2I的个性化模型集成&#xff0c;以生成动画。训练策略&#xff1a;AnimateDiff的训练包括三个阶段&#xff1a; 领域适配…

揭秘!高校如何逆袭,在算法与科技竞技场中脱颖而出?

目录 揭秘!高校如何逆袭,在算法与科技竞技场中脱颖而出? 一、算法秘境:深度挖掘,教学相长 二、跨界融合:场景为王,合作共赢 企业和高校之间在:场景,算法,数据,算力的优势,高校优势不明显,仅仅在算法方面存在一些优势但并不明显。高校怎样做 揭秘!高校如何逆袭…

初始docker以及docker的基本使用!!!

文章目录 虚拟化技术Docker/podman 命令通用命令查看docker 当前版本管理docker运行 镜像操作[image]列出本地所有镜像拉取镜像删除镜像把docker中的镜像打包成文件把镜像文件加载到docker中上传镜像 容器操作[container]创建容器docker run的参数选项列出所有容器启动容器停止…

【Mysql】为modified_time和created_time设置默认值

建立表SQL&#xff1a; CREATE TABLE your_table_name (id int(11) NOT NULL AUTO_INCREMENT,/* 其他字段 */created_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 创建日期,modified_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 修改…

使用Docker一键部署Blossom笔记软件

Blossom 是一个需要私有部署的笔记软件,虽然本身定位是一个云端软件,但你仍然可以在本地部署,数据和图片都将保存在你的设备,不依赖任何的图床或者对象存储。 客户端:支持 Windows 端和 ARM 架构的 Mac 端,以及作为网页端部署。移动端:响应式网页移动端,主要为移动端设…

【论文速看】DL最新进展20240923-长尾综述、人脸防伪、图像分割

目录 【长尾学习】【人脸防伪】【图像分割】 【长尾学习】 [2024综述] A Systematic Review on Long-Tailed Learning 论文链接&#xff1a;https://arxiv.org/pdf/2408.00483 长尾数据是一种特殊类型的多类不平衡数据&#xff0c;其中包含大量少数/尾部类别&#xff0c;这些类…

UPPAL安装

UPPAL安装 下载安装UPPAAL 在UPPAAL官网上下载所需版本的UPPAAL&#xff1a;https://uppaal.org/downloads/#uppaal5.0 此处下载Windows UPPAAL5.0&#xff1a; 下载完成后&#xff0c;双击.exe文件&#xff0c;一路点击“下一步”&#xff0c;安装完成&#xff0c;并关闭&am…

分布式锁的几种方案对比?你了解多少种呢?

目录标题 1.关于分布式锁2.分布式锁的实现方案2.1 基于数据库实现2.1.1乐观锁的实现方式2.1.2 悲观锁的实现方式2.1.3 数据库锁的优缺点 2.2 基于Redis实现2.2.1 基于缓存实现分布式锁2.2.2缓存实现分布式锁的优缺点 2.3 基于Zookeeper实现2.3.1 如何实现&#xff1f;2.3.2 zk实…

生信技能59 - 基于GATK CallingSNP变异检测及注释流程

1. 流程说明 使用BWA MEM比对,如果文件较大,可使用bwa-mem2进行比对,速度会有很大提升;使用GATK对BAM进行排序和标记重复,再使用GATK HaplotypeCaller + GATK GenotypeGVCFs进行变异检测,生产.g.vcf文件,提取SNP并使用annovar进行位点注释。 使用bwa-mem2进行比对,获…

python全栈开发《37.列表(元组)的count函数》

元组的count函数的功能和用法与列表的count函数完全一致。 1.count的功能 返回当前列表中某个成员的个数。 2.count的用法 fruits [苹果,西瓜,水蜜桃,西瓜,雪梨] count fruits.count(西瓜) print(count) 运行结果&#xff1a; 2 注意&#xff1a;列表的内置函数count拿到需要…

Qt系统相关——QThread

文章目录 QThread的API使用示例客户端多线程应用场景互斥锁QMutexQMutexLockerQReadWriteLocker、QReadLocker、QWriteLocker 条件变量和信号量 QThread的API Qt中的多线程和Linux中的线程&#xff0c;本质上是一个东西 Linux线程概念 Linux多线程——线程控制 Linux多线程——…

EEPROM手册阅读笔记

目录 一、特征描述二、功能描述三、总线特性四、设备寻址五、写入操作1.字节写入2.页写入 六、读取操作1.当前地址读取2.随机读取3.顺序读取 一、特征描述 1.Microchip Technology Inc. 24AA04/24LC04B &#xff08;24XX04*&#xff09; 是一款 4 Kbit 电气可擦除 PROM。该器件…

【4】AT32F437 OpenHarmony轻量系统移植教程(1)

开源地址&#xff1a;https://gitee.com/AT32437_OpenHarmony 1.学习本文档的意义 1.学习移植OpenHarmony轻量系统到AT32全系列mcu上&#xff0c;本文档移植的具体型号为AT32F437ZMT7 2.学习OpenHarmony轻量系统开发 2.移植前的准备工作 1.移植之前必须要先熟悉AT-START-F…