C#自定义的方法实现堆栈类设计

 更新时间:2024年03月07日 08:53:17   作者:wenchm  
这篇文章主要为大家详细介绍了如何使用C#创建一个带有Push方法和Clist类的CStack类,并如何在其中添加和遍历堆栈数据,感兴趣的可以了解下

本实例展示了如何使用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 10
 
        stack.Pop();
        stack.Pop();
        Console.WriteLine("堆栈数量= {0}", stack.Count());
        stack.Display(); // 输出:10
    }
}

4.运行结果

把上面3个类,放进一个命名空间,运行结果:

运行结果:

堆栈数量=3
30 20 10
堆栈数量= 1
10

到此这篇关于C#自定义的方法实现堆栈类设计的文章就介绍到这了,更多相关C#堆栈类设计内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C# 构造函数如何调用虚方法

    C# 构造函数如何调用虚方法

    这篇文章主要介绍了C# 构造函数如何调用虚方法,文中讲解非常详细,示例代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#实现Markdown内容转为Word或PDF

    C#实现Markdown内容转为Word或PDF

    Markdown作为一种轻量级的标记语言,因其简洁易读、语法清晰的特点被广大程序员和技术文档编写者所青睐,本文主要介绍了如何使用C#实现Markdown内容转为Word或PDF,需要的可以参考下
    2024-03-03
  • C# 基础入门--注释

    C# 基础入门--注释

    本文主要介绍了C#中注释的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • C#使用NPOI上传excel

    C#使用NPOI上传excel

    这篇文章主要为大家详细介绍了C#使用NPOI上传excel的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 简单了解C#设计模式编程中的桥接模式

    简单了解C#设计模式编程中的桥接模式

    这篇文章主要介绍了C#设计模式编程中的桥接模式,桥接模式经常应用于解耦逻辑层与数据操作层,需要的朋友可以参考下
    2016-02-02
  • C#自定义字符串替换Replace方法实例

    C#自定义字符串替换Replace方法实例

    这篇文章主要介绍了C#自定义字符串替换Replace方法,以两个不同实例对比分析了C#自定义字符串替换Replace的方法,是C#关于字符串操作的典型应用,需要的朋友可以参考下
    2014-11-11
  • 在WPF中动态加载XAML中的控件实例代码

    在WPF中动态加载XAML中的控件实例代码

    这篇文章主要介绍了在WPF中动态加载XAML中的控件,实例分析了WPF中针对XAML中控件的动态调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • C#自定义事件之属性改变引发事件示例

    C#自定义事件之属性改变引发事件示例

    这篇文章主要为大家详细介绍了C#自定义事件之属性改变引发事件示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • C#很简单而又很经典的一句代码实例

    C#很简单而又很经典的一句代码实例

    这篇文章主要给大家分享介绍了关于C#很简单而又很经典的一句代码,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • C#中的不可变数据类型介绍(不可变对象、不可变集合)

    C#中的不可变数据类型介绍(不可变对象、不可变集合)

    这篇文章主要介绍了C#中的不可变数据类型介绍(不可变对象、不可变集合),本文讲解了不可变对象、自定义不可变集合、Net提供的不可变集合、不可变优点、不可变对象缺点等内容,需要的朋友可以参考下
    2015-04-04

最新评论