資料結構(1)棧的自定義實現

2021-09-09 01:16:36 字數 1489 閱讀 9347

棧和佇列是最基礎的資料結構,關於他們的特性和用法我們都已十分熟悉。今天我要描述的是如何自定義實現棧這種資料結構,這能夠幫助我們深入地了解棧這種資料結構的原理,也能更好地研究其他資料結構型別。

概述:自定義實現能夠動態調整的泛型棧型別,並能夠保持較好地效能。

實現:1.首先我們實現的是一種定容泛型棧型別,此種棧建立後,大小固定,十分容易實現。

public

class fixedcapacitystack

public

bool

isempty()

public

intsize()

public

void

push(t item)

public

t pop()

}

這段c#**成功實現了乙個泛型棧,但是其容量是固定的,當他的大小遠遠小於或者大於容量時,就會造成記憶體資源浪費和異常。這就要求我們實現可變的,靈活地棧型別。

2.接下來我們實現可變容的泛型棧型別,這樣我們就可以達到動態縮放其大小。

public

class 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()}}

應用:我們可以通過實際呼叫測試其實際執行效果,**如下:

class

program

console.writeline(s.size());

}}

至此我們實現了乙個可迭代的可變容的范型棧型別,這樣再來理解和使用棧型別,勢必會有更清晰的認識。

class

program

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...