51.(c#)堆栈 Stack s = new Stack()
2021/7/24 1:07:34
本文主要是介绍51.(c#)堆栈 Stack s = new Stack(),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
// Stack名字空间
namespace Stack
{
using System;
public class Stack
{
// first: 栈最上面一个节点
private Node first = null;
// count: 栈中节点的数量
private int count = 0;
// 判空属性,提供get访问器
public bool Empty
{
get
{
return (first == null);
}
}
// 计数属性,提供get访问器
public int Count
{
get
{
return count;
}
}
// 压栈操作,注意返回object
public object Pop()
{
if (first == null)
{
throw new InvalidOperationException ("Cant pop from an empty stack");
}
else
{
object temp = first.Value;
first = first.Next;
count--;
return temp;
}
}
// 弹栈操作,返回空
public void Push(object o)
{
first = new Node(o, first);
count++;
}
// 节点类
class Node
{
// 节点有两个属性:自己、指向下一个节点
public Node Next;
public object Value;
public Node(object value) : this(value, null) {}
public Node(object value, Node next)
{
Next = next;
Value = value;
}
}
}
class StackApp
{
static void Main()
{
Stack s = new Stack();
if (s.Empty)
Console.WriteLine("堆栈为空");
else
Console.WriteLine("堆栈非空");
// 往栈中压入5个节点
for (int i = 0; i < 5; i++)
s.Push(i);
Console.WriteLine("往堆栈中压入了{0}个元素", s.Count);
// 把栈中节点全部弹出来
for (int i = 0; i < 5; i++)
Console.WriteLine("弹出了第{0}个元素,还剩{1}个元素。", (int)s.Pop()+1, s.Count);
s = null;
}
}
}
这篇关于51.(c#)堆栈 Stack s = new Stack()的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用