用C#实现的栈问题?
主要代码:public class Stack //栈模型的实现
{
private int[] arr; //栈元素分配的空间
private int sp; //栈顶指示器
private int count;
public Stack(int Length) //初始化栈
{
count = Length;
sp = 0;
arr = new int[Length];
}
public Stack() //初始化栈重载
{
count = 10;
sp = 0;
arr = new int[10];
}
public void Push(int e) //进栈
{
if (sp >= count) MessageBox.Show("栈已满,无法压栈");
else
{
arr[sp] = e;
sp++;
}
}
public int Pop() //出栈,取栈顶元素
{
int e;
if (sp <= 0)
{
MessageBox.Show("栈空,无法出栈");
return 0;
}
else
{
sp++;
e = arr[sp];
return e;
}
}
public bool StackEmpty() //判断栈是否为空?
{
if (sp <= 0) return true;
else return false;
}
}
Click事件代码:
private void button1_Click(object sender, EventArgs e)
{
Stack s = new Stack();
s.Push(8);
int a = s.Pop();
label1.Text = a.ToString();
}
结果是错误的,因为lable控件一直显示的是0,正确的话应该是8,麻烦大家看一下什么地方出了错误?