代码改变世界

c# Stack操作类

  田志良  阅读(7800)  评论(2编辑  收藏  举报

Stack类代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
//using System.Collections.Generic;
using System.Text;
using System.Collections;
 
namespace StackHelper
{
    class StackHelper
    {
        private Stack list;
        public Stack List
        {
            set { list = value; }
            get { return list; }
        }
        public StackHelper()
        {
            list = new Stack();//注意:不是list=new StackHelper()
            Console.WriteLine("---------Stack-----------");
        }
        //压入一个元素
        public void Add(object o)
        {
            list.Push(o);
            Console.WriteLine("压入\t元素:{0}",o);
        }
        //删除栈顶元素
        public void Remove()
        {
            list.Pop();
            Console.WriteLine("弹出栈顶元素");
        }
        //取出栈顶元素
        public void GetValue()
        {
            list.Peek();
            Console.WriteLine("取出栈顶元素的值");
        }
        //使用foreach进行遍历
        public void GetValues()
        {
            Console.WriteLine("遍历");
            foreach (object o in list)
            {
                Console.WriteLine(string.Format("\t元素的值:{0}",o));
            }
        }
        //得到Stack的信息
        public void GetInfo()
        {
            Console.WriteLine(string.Format("信息\t元素总数:{0}",list.Count));
        }
    }
}

测试页面代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
 
namespace StackHelper
{
    class Program
    {
        static void Main(string[] args)
        {
            StackHelper list=new StackHelper();
            list.Add("a");
            list.Add("b");
            list.Add("c");
            list.GetInfo();
            list.GetValues();
            list.GetValue();
            list.GetValues();
            list.GetInfo();
            list.Remove();
            list.GetValues();
            list.GetInfo();
        }
    }
}

注意:Pop ()和Peek()方法的区别。Pop()取出栈顶元素,栈顶元素被弹出Stack;Peek()读得栈顶元素,但站定元素没有被弹出Stack。

 

 

 

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示