using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
namespace HelloWorld
{
class MyStack<T>
{
T[] StackArray;
int StackPointer = 0;
public void Push(T x)
{
if (!IsStackFull)//如果不满栈
{
StackArray[StackPointer++] = x;
}
}
public T Pop()
{
return (!IsStackEmpty)//如果不是空栈,pop;如果是空栈,返回栈底
? StackArray[--StackPointer]
: StackArray[0];
}
const int MaxStack = 10;
bool IsStackFull { get { return StackPointer >= MaxStack; } }//判断是否满栈,满栈返回true
bool IsStackEmpty { get{ return StackPointer<=0;}}//判断是否空栈,空栈返回true
public MyStack()
{
StackArray=new T[MaxStack];
}
public void Print()
{
for (int i = StackPointer - 1; i >= 0; i--)
{
Console.WriteLine("Value: {0}",StackArray[i]);
}
}
}
class Program
{
static void Main(string[] args)
{
var stackInt = new MyStack<int>();
var stackString = new MyStack<string>();
stackInt.Push(3);
stackInt.Push(5);
stackInt.Push(7);
stackInt.Print();
stackString.Push("Generics are great!");
stackString.Push("Hi there!");
stackString.Print();
}
}
}
C#使用泛型的栈的示例
最新推荐文章于 2023-02-24 12:55:48 发布