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);


cs 复制代码
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);
        }

    }
}
相关推荐
丶白泽12 分钟前
重修设计模式-结构型-桥接模式
java·设计模式·桥接模式
o独酌o18 分钟前
递归的‘浅’理解
java·开发语言
Book_熬夜!20 分钟前
Python基础(六)——PyEcharts数据可视化初级版
开发语言·python·信息可视化·echarts·数据可视化
无问81730 分钟前
数据结构-排序(冒泡,选择,插入,希尔,快排,归并,堆排)
java·数据结构·排序算法
m0_631270401 小时前
高级c语言(五)
c语言·开发语言
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
2401_858286111 小时前
53.【C语言】 字符函数和字符串函数(strcmp函数)
c语言·开发语言
Flying_Fish_roe1 小时前
Spring Boot-版本兼容性问题
java·spring boot·后端
程序猿进阶1 小时前
如何在 Visual Studio Code 中反编译具有正确行号的 Java 类?
java·ide·vscode·算法·面试·职场和发展·架构
程序猿练习生1 小时前
C++速通LeetCode中等第5题-无重复字符的最长字串
开发语言·c++·leetcode