public class ArrayStack<T>{int maxSize;//栈的大小T[] stack;//数组模拟栈,数据就放在该数组int top = -1;//表示栈顶,初始化为-1public ArrayStack(int maxSize){this.maxSize = maxSize;stack = new T[this.maxSize];}//栈满public bool isFull(){return top == maxSize - 1;}//栈空public bool isEmpty(){return top == -1;}//入栈pushpublic void push(T value){if (isFull()){Console.WriteLine("栈满");return;}stack[++top] = value;}//出栈pop,将栈顶的数据返回public T pop(){if (isEmpty()){throw new Exception("栈空");}return stack[top--];}//显示栈的数据,遍历栈,需要从栈顶开始显示数据public void list(){if (isEmpty()){Console.WriteLine("栈空");return;}for(int i = top; i >= 0; i--){Console.WriteLine(stack[i]);}}//返回栈头public T peak(){if (isEmpty()){return default(T);}return stack[top];}}
