棧(stack)代表了乙個只有乙個出口的後進先出的物件集合。在列表中新增一項,稱為推入元素,從列表中移除一項時,稱為彈出元素。
stack類
public class stack: ienumerable, icollection, ienumerable
count 獲取 stack 中包含的元素個數
pop 移除並返回在 stack 的頂部的物件
push 向 stack 的頂部新增乙個物件
peek 返回在 stack 的頂部的物件,但不移除它
toarray 建立陣列並將堆疊元素複製到其中
contains 判斷乙個元素是否在棧中
clear 從 stack 中移除所有的元素。
在此使用msdn中例子。以下**及結果顯示來自:c#棧的簡單介紹及應用
using system;
using system.collections.generic;
class example
//pop彈出元素,並刪除「five」
console.writeline("\npopping ''", numbers.pop());
//peek彈出元素,但不刪除
console.writeline("peek at next item to destack: ",numbers.peek());
//再彈出再刪除
console.writeline("popping ''", numbers.pop());
// 建立新棧,複製元素
stackstack2 = new stack(numbers.toarray());
console.foregroundcolor = consolecolor.magenta;
console.writeline("\ncontents of the first copy:");
foreach (string number in stack2)
// 建立雙倍size陣列,從一般開始儲存棧元素
string array2 = new string[numbers.count * 2];
numbers.copyto(array2, numbers.count);
// 再建立雙倍size棧,將陣列再存入
stackstack3 = new stack(array2);
console.foregroundcolor = consolecolor.yellow;
console.writeline("\ncontents of the second copy, with duplicates and nulls:");
foreach (string number in stack3)
//contains用法
console.writeline("\nstack2.contains(\"four\") = ", stack2.contains("four"));
console.writeline("\nstack2.clear()");
//clear()用法
stack2.clear();
console.writeline("\nstack2.count = ", stack2.count); } }
結果如下:
棧的簡單介紹
我們用一種最簡單的生活常識描述一下,比如我們往櫃子裡放東西,先放的東西是需要放到櫃子最裡邊,後放的東西在櫃子的最外邊 如果我們要取東西,先要取櫃子最外邊的東西,才能取到櫃子最裡邊的東西。這種先進後出,後進先出的結構稱為 棧 先進後出,後進先出 棧的操作就兩種,分別為出棧和入棧。那我們上邊的例子,我們...
c 簡單的棧
stack.h中宣告了stack類,在stack.cpp中進行了定義 stack的私有成員包括data指標,指向棧,tot指的是開闢總的空間,pointer指向類裡面元素的位置 stack有兩個建構函式 不傳參開闢大小為10的陣列,傳參按照引數開闢陣列 stack有兩個狀態函式判斷棧是否為空或滿 e...
c 異常的簡單介紹
語法 1 若有異常則通過throw操作建立乙個異常物件並拋擲。2 將可能丟擲異常的程式段嵌在try塊之中。控制通過正常的順序執行到達try語句,然後執行try塊內的保護段。3 如果在保護段執行期間沒有引起異常,那麼跟在try塊後的catch子句就不執行。程式從try塊後跟隨的最後乙個catch子句後...