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

C#进阶(2)stack(栈)

前言

我们前面介绍了ArrayList,今天就介绍另一种数据结构——栈。

这是栈的基本形式,博主简单画了一下,你看个意思就行,很明显,这种数据有一种特征:先进后出。因为先进来的数据会在下面,下面是密闭的,所以只能取后面进来的。

C#为我们封好了这种数据结构,我们不用担心如何具体实现它,相对c和c++来说会更好上手一些,如果你要对栈了解得更加深入,我建议你可以去学一下这类基石语言,然后了解一下数据结构的构成。

我这里也不废话,我们直接进入正题。

本质

  1. object数组(啥都可以存)
  2. 先进后出的数据结构

声明

Stack stack =new Stack();//同样需要引用System.Collections

 增删查改

  1. 增(压栈)
    Stack.Push();//增加只能一个一个的来
    
  2. 删(取;弹栈)
    栈不支持从中间删除,因为栈是无法查看指定位置元素的,只能查看栈顶内容,这样设计其实是为了让这种数据结构本身不具有复杂的数据属性,保证了简洁和高效,同时也确保了栈结构的纯粹性和不可变性。所以他的本质看上去更像从栈顶取出一个数据,而不是删除。
    stack.Pop();//删,取也只能一个一个来

  3. a.无法查看指定位置元素,只能看栈顶内容;
    b.可以查看元素是否存在栈中,和ArrayList很像。
    stack.Peek();//查看栈顶
    stack.Contains();//检查是否有该元素

  4. 只能使用清空
    stack.clea();

同样的,博主还是给你可以直接使用的代码,不过还是那句话,我希望你能自己去写,自己去f12进去看,自己去体会这个东西,这样才能真正把东西学进脑子里。

 

using System;
using System.Collections.Generic;namespace StackDemo
{class Program{static void Main(string[] args){// ====================== 1. 增(压栈) ================
http://www.xdnf.cn/news/6587.html

相关文章:

  • linux环境下 安装svn并且创建svn版本库详细教程
  • 自媒体工作室如何矩阵?自媒体矩阵养号策略
  • 嵌入式学习笔记 - STM32 ADC 模块工作模式总结
  • 【解决分辨数字】2021-12-16
  • React学习———CSS Modules(样式模块化)
  • Go语言处理HTTP下载中EOFFailed
  • Spring WebFlux与Quarkus实战:云原生微服务开发的两大主流框架深度解析
  • STM32CubeMX使用SG90舵机角度0-180°
  • Rust 学习笔记:关于 String 的练习题
  • python中集合的操作
  • MySQL 与 FastAPI 交互教程
  • 在 Ubuntu 系统中,将 JAR 包安装为服务
  • LongRefiner:解决长文档检索增强生成的新思路
  • Redis + ABP vNext 构建分布式高可用缓存架构
  • IntelliJ IDEA克隆项目失败的解决方法
  • Tomcat发布websocket
  • 笔试强训:Day5
  • FPGA: UltraScale+ bitslip实现(方案+代码)
  • 【递归、搜索和回溯】穷举vs暴搜vs深搜vs回溯vs剪枝
  • 【向量模型 + HNSW 参数如何选择】
  • 用栈实现+-*/计算器
  • GPU八卡A100使用INT4-W4A16量化大模型实验
  • Manus AI 原理深度解析第三篇:Tools
  • 什么是DHCP?
  • JavaScript零基础入门笔记:狂神版
  • C# Try Catch Finally 执行顺序是什么?有返回值呢?
  • Openlayers:如何注册一个新的坐标系统
  • web第二次课后作业--设计一个注册登录系统
  • MyBatis:从入门到深度理解
  • 从入门到实战:时序图核心知识与高效绘制全解析(附模板)