C#进阶(2)stack(栈)
前言
我们前面介绍了ArrayList,今天就介绍另一种数据结构——栈。
这是栈的基本形式,博主简单画了一下,你看个意思就行,很明显,这种数据有一种特征:先进后出。因为先进来的数据会在下面,下面是密闭的,所以只能取后面进来的。
C#为我们封好了这种数据结构,我们不用担心如何具体实现它,相对c和c++来说会更好上手一些,如果你要对栈了解得更加深入,我建议你可以去学一下这类基石语言,然后了解一下数据结构的构成。
我这里也不废话,我们直接进入正题。
本质
- object数组(啥都可以存)
- 先进后出的数据结构
声明
Stack stack =new Stack();//同样需要引用System.Collections
增删查改
- 增(压栈)
Stack.Push();//增加只能一个一个的来
- 删(取;弹栈)
栈不支持从中间删除,因为栈是无法查看指定位置元素的,只能查看栈顶内容,这样设计其实是为了让这种数据结构本身不具有复杂的数据属性,保证了简洁和高效,同时也确保了栈结构的纯粹性和不可变性。所以他的本质看上去更像从栈顶取出一个数据,而不是删除。stack.Pop();//删,取也只能一个一个来
- 查
a.无法查看指定位置元素,只能看栈顶内容;
b.可以查看元素是否存在栈中,和ArrayList很像。stack.Peek();//查看栈顶 stack.Contains();//检查是否有该元素
- 改
只能使用清空stack.clea();
同样的,博主还是给你可以直接使用的代码,不过还是那句话,我希望你能自己去写,自己去f12进去看,自己去体会这个东西,这样才能真正把东西学进脑子里。
using System;
using System.Collections.Generic;namespace StackDemo
{class Program{static void Main(string[] args){// ====================== 1. 增(压栈) ================