C#自定義的方法實(shí)現(xiàn)堆棧類(lèi)設(shè)計(jì)
本實(shí)例展示了如何使用C#創(chuàng)建一個(gè)帶有Push方法和Clist類(lèi)的CStack類(lèi),并如何在其中添加和遍歷堆棧數(shù)據(jù)。
1.首先創(chuàng)建一個(gè)名為Clist的類(lèi)
這是堆棧實(shí)現(xiàn)的基礎(chǔ)。有兩處注意的:
應(yīng)使用List<T>.RemoveAt(Int32) 方法而不是List<T>.Remove(T) 方法,否則,后期生成的Pop方法是不起作用的。
為了實(shí)現(xiàn)堆棧的LIFO特性,遍歷輸出Display()方法應(yīng)選擇反向遍歷輸出。
public class Clist { private readonly List<int>? myList; public Clist() { myList = []; } public void Add(int item) { myList!.Add(item); } public void RemoveAt(int item) { myList!.RemoveAt(item); } public void Clear() { myList!.Clear(); } public int Count() { return myList!.Count; } public void Display() { for (int i = myList!.Count - 1; i >= 0; i--) { int item = myList[i]; Console.Write(item + " "); } Console.WriteLine(); } }
2.接下來(lái)創(chuàng)建一個(gè)名為CStack的類(lèi)
它將使用Clist類(lèi)的實(shí)例來(lái)實(shí)現(xiàn)堆棧。
public class CStack { private readonly Clist mylist; public CStack() { mylist = new Clist(); } public void Push(int item) { mylist.Add(item); } public void Pop() { mylist.RemoveAt(mylist.Count() - 1); } public int Count() { return mylist.Count(); } public void Display() { mylist.Display(); } }
3.最后使用CStack類(lèi)和Push方法來(lái)添加和遍歷堆棧數(shù)據(jù)
class Program { static void Main(string[] args) { ArgumentNullException.ThrowIfNull(args); CStack stack = new(); stack.Push(10); stack.Push(20); stack.Push(30); Console.WriteLine("堆棧數(shù)量={0}", stack.Count()); stack.Display(); // 輸出:30 20 10 stack.Pop(); stack.Pop(); Console.WriteLine("堆棧數(shù)量= {0}", stack.Count()); stack.Display(); // 輸出:10 } }
4.運(yùn)行結(jié)果
把上面3個(gè)類(lèi),放進(jìn)一個(gè)命名空間,運(yùn)行結(jié)果:
運(yùn)行結(jié)果:
堆棧數(shù)量=3
30 20 10
堆棧數(shù)量= 1
10
到此這篇關(guān)于C#自定義的方法實(shí)現(xiàn)堆棧類(lèi)設(shè)計(jì)的文章就介紹到這了,更多相關(guān)C#堆棧類(lèi)設(shè)計(jì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# 構(gòu)造函數(shù)如何調(diào)用虛方法
這篇文章主要介紹了C# 構(gòu)造函數(shù)如何調(diào)用虛方法,文中講解非常詳細(xì),示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07C#實(shí)現(xiàn)Markdown內(nèi)容轉(zhuǎn)為Word或PDF
Markdown作為一種輕量級(jí)的標(biāo)記語(yǔ)言,因其簡(jiǎn)潔易讀、語(yǔ)法清晰的特點(diǎn)被廣大程序員和技術(shù)文檔編寫(xiě)者所青睞,本文主要介紹了如何使用C#實(shí)現(xiàn)Markdown內(nèi)容轉(zhuǎn)為Word或PDF,需要的可以參考下2024-03-03簡(jiǎn)單了解C#設(shè)計(jì)模式編程中的橋接模式
這篇文章主要介紹了C#設(shè)計(jì)模式編程中的橋接模式,橋接模式經(jīng)常應(yīng)用于解耦邏輯層與數(shù)據(jù)操作層,需要的朋友可以參考下2016-02-02在WPF中動(dòng)態(tài)加載XAML中的控件實(shí)例代碼
這篇文章主要介紹了在WPF中動(dòng)態(tài)加載XAML中的控件,實(shí)例分析了WPF中針對(duì)XAML中控件的動(dòng)態(tài)調(diào)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07C#很簡(jiǎn)單而又很經(jīng)典的一句代碼實(shí)例
這篇文章主要給大家分享介紹了關(guān)于C#很簡(jiǎn)單而又很經(jīng)典的一句代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07C#中的不可變數(shù)據(jù)類(lèi)型介紹(不可變對(duì)象、不可變集合)
這篇文章主要介紹了C#中的不可變數(shù)據(jù)類(lèi)型介紹(不可變對(duì)象、不可變集合),本文講解了不可變對(duì)象、自定義不可變集合、Net提供的不可變集合、不可變優(yōu)點(diǎn)、不可變對(duì)象缺點(diǎn)等內(nèi)容,需要的朋友可以參考下2015-04-04