C#自定義的方法實現(xiàn)堆棧類設(shè)計
本實例展示了如何使用C#創(chuàng)建一個帶有Push方法和Clist類的CStack類,并如何在其中添加和遍歷堆棧數(shù)據(jù)。
1.首先創(chuàng)建一個名為Clist的類
這是堆棧實現(xiàn)的基礎(chǔ)。有兩處注意的:
應(yīng)使用List<T>.RemoveAt(Int32) 方法而不是List<T>.Remove(T) 方法,否則,后期生成的Pop方法是不起作用的。
為了實現(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.接下來創(chuàng)建一個名為CStack的類
它將使用Clist類的實例來實現(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類和Push方法來添加和遍歷堆棧數(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.運行結(jié)果
把上面3個類,放進一個命名空間,運行結(jié)果:
運行結(jié)果:
堆棧數(shù)量=3
30 20 10
堆棧數(shù)量= 1
10
到此這篇關(guān)于C#自定義的方法實現(xiàn)堆棧類設(shè)計的文章就介紹到這了,更多相關(guān)C#堆棧類設(shè)計內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#快速實現(xiàn)IList非泛型類接口的自定義類作為數(shù)據(jù)源
本文主要介紹了C#快速實現(xiàn)IList非泛型類接口的自定義類作為數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
C#根據(jù)前臺傳入實體名稱實現(xiàn)動態(tài)查詢數(shù)據(jù)
這篇文章主要為大家詳細介紹了C#如何根據(jù)前臺傳入實體名稱實現(xiàn)動態(tài)查詢數(shù)據(jù)的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-04-04

