C#进阶(2)stack(栈)

前言

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

C#进阶(2)stack(栈)_第1张图片

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

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. 增(压栈) ================

你可能感兴趣的:(#,C#进阶,java,开发语言)