c#笔记stack堆·22

本文详细介绍了C#中的Stack堆栈,包括如何创建、压栈、弹栈、检查栈顶元素、清除堆栈以及遍历堆栈。通过实例展示了Stack的基本操作,如Push、Pop、Peek、Contains等,以及四种不同的遍历方式。
摘要由CSDN通过智能技术生成

Stack栈=堆栈(因为放在一起叫别扭)
内存堆栈:栈区:存放基本数据类型(int long float char bool)--(编译器自动释放)
              枚举类型:enum,
              结构类型:struct
    堆区:类(基类system.objtect  string  class)--------(公共语言运行库CLR释放)
             接口:interface
             数组:int[] string[]


 Stack a = new Stack();//声明一个堆栈(先进后出)
//增(压栈)
            a.Push(12);//存储的也是ojbect类型
            a.Push("haode");
            a.Push(new person());//没有范围存放-----------------------------------------------------------------------------------------------------------------
//取
            object b = a.Pop();//(注意是取出来,直接这个元素就没有了)
            Console.WriteLine(b);//后进先出
//查
            object b2 = a.Peek();//(只能查看栈顶的元素)
            Console.WriteLine(b2);//只查看栈顶的元素,不做取出操作 -------------------------------------------------------------------------------------------
            if (a.Contains("haode"))//查看堆栈里是否有某个元素
            {
                Console.WriteLine("yeah");
            }
//改
            a.Clear();//由于堆栈stack和queue队列都没有下标,所以没办法对某个特定的值进行更改,只能清空之后再从新放入
            a.Push(10086);
            a.Push("zhenhao");
//遍历
            Console.WriteLine("总量是:" + "" + a.Count);//总量(stack堆栈queue队列都没有总容量)
            foreach (object aa in a)//第一种遍历:堆栈a(遍历类型  存到哪里  In   遍历谁?)(只读)-------------------------------------------------------------
            {
                Console.WriteLine("第一种遍历:"+""+aa);//
            }
            object[] bb = a.ToArray();//第二种遍历:将a堆栈转换成object数组------------------------------------------------------------------------------------
            for(int i=0;i<bb.Length;++i)
            {
                Console.WriteLine("第二种遍历:"+""+bb[i]);-
            }

            while(a.Count>0)//如果a中还有东西则(前面foreach(),转object数组都是只查看不更改原始a堆栈内容,后两种是直接一个一个取出后查看)-------------
            {
                Console.WriteLine("第三种遍历:"+""+a.Pop());
            }

            int t = (int)a.Count;-------------------------------------------------------------------------------------------------------------------------------------
            for (int i = 0; i < t; ++i)//第四种遍历:想要for循环遍历注意a.count是变化的,每取出一个值则a.count-1
            {

                Console.WriteLine("第四种遍历:"+""+a.Pop());

            }
//装箱拆箱
            int qq = (int)a.Pop();//引用类型转值类型,拆箱
            //与queue队列一样


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值