当前位置: 首页 > news >正文

C# Stack

Stack本质

Stack(栈)是一个C#为我们封装好的类
            它的本质也是object[]数组,只是封装了特殊的存储规则

            Stack是栈存储容器,栈是一种先进后出的数据结构
            

栈无法改变其中的元素 只能压(存)和弹(取)
            实在要改 只有清空

申明

需要引用命名空间 System.Collections


            Stack stack = new Stack();

压栈

stack.Push(1);
stack.Push("123");
stack.Push(true);
stack.Push(1.2f);
stack.Push(new Test());

出栈

object v = stack.Pop();
Console.WriteLine(v);

查看栈顶元素 查看元素是否存在

栈无法查看指定位置的 元素
  只能查看栈顶的内容
            v = stack.Peek();
            Console.WriteLine(v);
            v = stack.Peek();
            Console.WriteLine(v);

            查看元素是否存在于栈中


            if( stack.Contains("123") )
            {
                Console.WriteLine("存在123");
            }
 

遍历

1.长度
Console.WriteLine(stack.Count);

2.用foreach遍历
遍历出来的顺序 是从栈顶到栈底
 foreach(object item in stack)
 {
     Console.WriteLine(item);
 }

 3.还有一种遍历方式
  将栈转换为object数组
 遍历出来的顺序 也是从栈顶到栈底
 object[] array = stack.ToArray();
 for (int i = 0; i < array.Length; i++)
 {
     Console.WriteLine(array[i]);
 }

 Console.WriteLine(stack.Count);


 4.循环弹栈


 while( stack.Count > 0 )
 {
     object o = stack.Pop();
     Console.WriteLine(o);
 }
 Console.WriteLine(stack.Count);
 


class Program
{Stack stack = new Stack();public   static void Main(){Console.WriteLine("请输入10进制的正整数");int a;a=int.Parse( Console.ReadLine());Program program = new Program();program. To2Form(a);Console.Write("转换结果");while (program.stack.Count > 0){Console.Write(program.stack.Pop());}}protected  void To2Form(int  a){int y;while (a>=1) {y=a % 2;a= a / 2;stack.Push(y);}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring的核心启动流程
  • yas源码解析 之 hexdump打印二进制
  • PostgreSQL的pg_dump中 --inserts参数测试
  • 随机优化中基于任务的端到端模型学习
  • 为什么使用网络请求时,遇到 HTTP 请求返回 404(Not Found)错误,而使用 HTTPS 请求则正常工作
  • 蛇优化算法(Snake Optimization, SO)优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)
  • 建筑楼宇电气安全与能效管理
  • 【JVM】JVM解析字节码文件过程(一)
  • Vue条件判断:v-if、v-else、v-else-if、v-show 指令
  • MySQL 升级:MySQL Server 变更详解 (8.0.36 ~ 8.0.37)
  • Fiddler不仅可以抓包,还可以做接口测试喔
  • 【ACM出版,高录用EI快检索】第七届计算机信息科学与人工智能国际学术会议(CISAI 2024,9月6-8)
  • 硬布线控制器的设计
  • MinerU pdf文档解析markdown格式、内容提取
  • 【Qt笔记】Qt建立UDP通信
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • es6要点
  • JAVA多线程机制解析-volatilesynchronized
  • Java小白进阶笔记(3)-初级面向对象
  • js学习笔记
  • mac修复ab及siege安装
  • PermissionScope Swift4 兼容问题
  • python_bomb----数据类型总结
  • spark本地环境的搭建到运行第一个spark程序
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 利用DataURL技术在网页上显示图片
  • 深度学习中的信息论知识详解
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 移动端解决方案学习记录
  • UI设计初学者应该如何入门?
  • # Java NIO(一)FileChannel
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (ibm)Java 语言的 XPath API
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (四)linux文件内容查看
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)shell中括号的特殊用法 linux if多条件判断
  • ****Linux下Mysql的安装和配置
  • .net core 控制台应用程序读取配置文件app.config
  • .NET Core 中的路径问题
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net 发送邮件
  • .NET 设计一套高性能的弱事件机制
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @Transactional事务注解内含乾坤?