目录
1.首先创建一个名为Clist的类
2.接下来创建一个名为CStack的类
3.最后使用CStack类和Push方法来添加和遍历堆栈数据
4.运行结果
本实例展示了如何使用C#创建一个带有Push方法和Clist类的CStack类,并如何在其中添加和遍历堆栈数据。
1.首先创建一个名为Clist的类
这是堆栈实现的基础。有两处注意的:
- 应使用List<T>.RemoveAt(Int32) 方法而不是List<T>.Remove(T) 方法,否则,后期生成的Pop方法是不起作用的。
- 为了实现堆栈的LIFO特性,遍历输出Display()方法应选择反向遍历输出。
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.接下来创建一个名为CStack的类
它将使用Clist类的实例来实现堆栈。
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方法来添加和遍历堆栈数据
class Program
{static void Main(string[] args){ArgumentNullException.ThrowIfNull(args);CStack stack = new();stack.Push(10);stack.Push(20);stack.Push(30);Console.WriteLine("堆栈数量={0}", stack.Count());stack.Display(); // 输出:30 20 10stack.Pop();stack.Pop();Console.WriteLine("堆栈数量= {0}", stack.Count());stack.Display(); // 输出:10}
}
4.运行结果
把上面3个类,放进一个命名空间,运行结果:
//运行结果:
/*
堆栈数量=3
30 20 10
堆栈数量= 1
10*/