C#堆栈和队列
C#堆棧和隊列
此前已經采用 Array類和ArrayList類來把數據像列表一樣組織在一起. 盡管這兩種數據結構可以方便的把數據組織起來進行處理, 但是它們都沒有為設計和實現實際問題的解決方案提供真正的抽象。
堆棧(stack)和隊列(queue)是兩種面向列表(list-oriented)的數據結構, 它們都提供了易于理解的抽象. 堆棧中的數據只能在表的某一端進行添加和刪除操作, 反之隊列中的數據則在表的一端進行添加操作而在表的另一端進行刪除操作. 堆棧被廣泛用于從表達式計算到處理方法調用的任何編程語言的實現中. 而隊列則用在區分優先次序的操作系統處理以及模擬現實世界的事件方面, 比如銀行出納柜臺的隊列, 以及建筑物內電梯的操作。
C#為使用這些數據結構提供了兩種類:Stack 類和Queue類. 本章將會討論如何使用這些類并且介紹一些實用的例子。
堆棧, 堆棧的實現以及Stack 類
正如前面提到的那樣, 堆棧是最頻繁用到的數據結構之一. 在堆棧中, 數據項只能從表的末端進行訪問. 可訪問的這端被稱為是棧頂. 堆棧的標準模型是自助餐廳的盤子堆. 人們始終要從頂部拿走盤子, 而且當洗碗工或者雜工把盤子放回盤子堆的時候也是把它放在盤堆的頂部. 堆棧是著名的后進先出(LIFO)數據結構.
堆棧的操作
堆棧最基本的兩種操作就是向堆棧內添加數據項以及從堆棧中刪除數據項. Push(進棧)操作是向堆棧內添加數據項. 而把數據項從堆棧內取走則用 Pop(出棧)操作. 這些操作的實例說明可參見圖5-1.
總結
- 上一篇: 财务分析常用指标
- 下一篇: 西门子免授权CNC数控系统数据采集c#、