C 棧的簡單介紹

2021-08-22 00:16:34 字數 1783 閱讀 3325

棧(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子句後...