棧和佇列是最基礎的資料結構,關於他們的特性和用法我們都已十分熟悉。今天我要描述的是如何自定義實現棧這種資料結構,這能夠幫助我們深入地了解棧這種資料結構的原理,也能更好地研究其他資料結構型別。
概述:自定義實現能夠動態調整的泛型棧型別,並能夠保持較好地效能。
實現:1.首先我們實現的是一種定容泛型棧型別,此種棧建立後,大小固定,十分容易實現。
publicclass fixedcapacitystack
public
bool
isempty()
public
intsize()
public
void
push(t item)
public
t pop()
}
這段c#**成功實現了乙個泛型棧,但是其容量是固定的,當他的大小遠遠小於或者大於容量時,就會造成記憶體資源浪費和異常。這就要求我們實現可變的,靈活地棧型別。
2.接下來我們實現可變容的泛型棧型別,這樣我們就可以達到動態縮放其大小。
publicclass fixedcapacitystack
public
bool
isempty()
public
void resize(int
max)
public
intsize()
public
void
push(t item)
public
t pop()
}
3.進一步實現可迭代的棧型別,能夠按照設計意圖實現棧型別迭代的特性。 public
class fixedcapacitystack:ienumerable
public
bool
isempty()
public
void resize(int
max)
public
int min(int x, int
y)
public
intsize()
public
void
push(t item)
public
t pop()
public
ienumerator getenumerator()}}
應用:我們可以通過實際呼叫測試其實際執行效果,**如下:
classprogram
console.writeline(s.size());
}}
至此我們實現了乙個可迭代的可變容的范型棧型別,這樣再來理解和使用棧型別,勢必會有更清晰的認識。
classprogram
console.writeline(s.size());
}}
自定義資料結構(棧 佇列) 括號匹配
第二題 括號匹配 滿足如下條件的字串稱為括號匹配的字串 1.空字串是括號匹配的字串。2.若a是括號匹配的串,則 a a 是括號匹配的字串。3.若a b是括號匹配的字串,則ab也是括號匹配的字串。例如 都是括號匹配的字串,而 則不是。現在對於輸入的字串,判斷它是否是括號匹配的字串。輸入一行,為乙個僅由...
自定義資料結構 MyHashMap
size medium 在學習了資料結構hashmap之後,自己也定義了乙個myhashmap,下面來解析一下myhashmap。size size x large 1 實質為乙個陣列 size size medium 我定義的myhashmap中所使用的資料結構是乙個陣列,資料都儲存在這個陣列中。...
資料結構 自定義佇列
用鍊錶建立佇列 public class linkqueueimplements queue public node e e public node override public string tostring private node head private node tail private...