前言
我們前面介紹了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. 增(壓棧) ================