教育培训网站设计,国家企业信息公示系统查询入口,东莞网络推广系统,重庆市建设工程质量监督信息网目录 一、前言
二、栈是排列方式
三、栈的单词
四、程序中的栈
五、栈的方法
1.声明并初始化栈
2.往栈里放东西#xff08;学名#xff1a;入栈#xff09;
3.从栈往外拿东西 #xff08;学名#xff1a;出栈#xff09;
4.清空栈
5.遍历 Stack 6.获取Stack的长…目录 一、前言
二、栈是排列方式
三、栈的单词
四、程序中的栈
五、栈的方法
1.声明并初始化栈
2.往栈里放东西学名入栈
3.从栈往外拿东西 学名出栈
4.清空栈
5.遍历 Stack 6.获取Stack的长度 7.看看某个元素在不在栈里
六、作者的碎碎念 一、前言
老规矩我们从熟悉的知识点先入手。我们常用int整数float小数,string字符串等这些都是单个的内容一个整数一个小数一个字符串。。。。。。
当我们需要用一堆的时候就会出现int数组float数组string数组。。。。。。和int列表float列表string列表。。。。。。抛开单个的不谈无论是数组还是列表都有一个特点你想要哪个就能拿到哪个想要扔掉哪个就可以扔掉哪个就像排列在书架上的书我可以随手抽一个走也可以随便插一个进去。如图1所示 图1 一排书 二、栈是排列方式
栈在现实生活中是一种摆放方式。
但有时我们并不希望随时可以抽取任何一本书我们需要顺序。如图2所示 图2 网球桶 例如我们现在拥有一个网球桶我们往里面装网球底部的A球是我们最先装的但我们在拿球的时候只能把它上方的都拿掉才能把最后一个拿出来在图片这个例子中有一个好处我们可以把上面的球都打坏了或者弄丢了我们才可以拿到下一个球这样可以保证下面的球只要不用就一直是新的。 还一个生活中的例子
超市的零食只有把最外面的拿掉才能拿到里面的如图3所示。 图3 超市零食 在这个图片案例中这样摆放零食最大程度上能保证零食的整齐。
这种排列方式最大的特点是排队摆放只能从最上方放进去也只能从最上方拿出来。
三、栈的单词 栈在程序里用的单词是StackStack在英语中的翻译为放成整齐的一叠
这个解释是不是和我们前面摆网球和零食很像了是的
四、程序中的栈
那到底为什么要弄这样一种摆放方式在程序中到底有什么用
我们举一个非常常见的例子我们在关网页或者关应用时往往不能直接使用第二层而是必须先把最上层关了才能点下层。如图4所示 图4 一堆窗口 如果你也想拥有这样一堆窗口从最上面挨个关闭它你就可以使用栈。 游戏制作养了个羊时也有这个机制。如图5所示 图5 养了个羊游戏 在这个游戏的两侧卡片中你只能使用最上层的卡牌被压着的都不能使用这里也可以用栈来写。
五、栈的方法
经过以上讲解后你可能发现栈的功能也很少。
1.声明并初始化栈
Stack stack new Stack();
2.往栈里放东西学名入栈 stack.Push()
这里放了两个字符串两个数字 Stack stack new Stack();stack.Push(a);stack.Push(b);stack.Push(0);stack.Push(1);
3.从栈往外拿东西 学名出栈
stack.Pop() Stack stack new Stack();stack.Push(a);stack.Push(b);stack.Push(0);stack.Push(1);//因为1是最后放的所以1在最上面
//从最上面把1拿走顺便让obj 1var obj stack.Pop();
//接下来栈里只有三个东西了
4.清空栈
stack.Clear() Stack stack new Stack();stack.Push(a);stack.Push(b);stack.Push(0);stack.Push(1);//把上面就都删了stack.Clear(); 以上都是直接操作的方法就是直接上手的方法 还有一些方法叫做我看看我不动 5.遍历 Stack
这里就像之前的网球因为是透明的我全部看一遍但我没有拿走也没有放进去。 Stack stack new Stack();stack.Push(a);stack.Push(b);stack.Push(0);stack.Push(1);foreach (var item in stack){//把每个都打印一遍Console.WriteLine(item);} 6.获取Stack的长度 Stack stack new Stack();stack.Push(a);stack.Push(b);stack.Push(0);stack.Push(1);//打印长度
Console.WriteLine(stack.Count); 7.看看某个元素在不在栈里 Stack stack new Stack();stack.Push(a);stack.Push(b);stack.Push(0);stack.Push(1);//打印里面有到底有没有a
Console.WriteLine(stack.Contains(a));
六、作者的碎碎念
如果希望看见更多简单的讲解给我个赞吧~
b站搜索菌菌巧乐兹部分文章有视频讲解~