现在我正在创建一个堆栈类。主要程序是:创建一个将数字推到数组长度的构造函数
class Program
{
static void Main(string[] args)
{
Queue myQue = new Queue(5);
Stack myStack = new Stack(5);
myStack.Push(1);
myStack.Push(2);
myStack.Push(3);
myStack.Push(4);
myStack.Push(5);
myStack.Push(6);
while (!myStack.IsEmpty)
{
Console.WriteLine(myStack.Pop());
}
Console.WriteLine(myStack.Pop());
Console.WriteLine("End of Stack");
}
}
然后堆栈类如下:
class Stack
{
private int top;
private int[] anArray;
public bool IsFull
{
get
{
return top == anArray.Length - 1;
}
}
public bool IsEmpty
{
get
{
return top == -1;
}
}
public void Push(int valueToPush)
{
if (IsFull)
{
//do nothing
}
else
{
anArray[top] = valueToPush;
top = top + 1;
}
}
public int Pop()
{
if (IsEmpty)
{
//do nothing
return
}
else
{
int pop = anArray[top];
top = top -1;
return pop;
}
}
}
我遇到的问题是,我需要返回什么,如果它是空的,但它不会让我由于int类型而返回NULL。
然后我想我要么跳过/不明白“构造函数”是什么。我明白,当我实例化“Stack myStack = new Stack(5);”它发送的是堆栈类“5”,但是如何将堆栈类中的5个数据发送到数组中?
提供的Stack类没有一个带整数的构造函数。你确定那是你用的吗? System.Collections.Stack具有一个整数,并且它设置了堆栈的初始大小,它不会向其中推入任何内容。 – asawyer 2011-04-08 21:08:40
这听起来很像一个班级作业? – 2011-04-08 21:11:28
我创建一个堆栈类,不使用由C#本身定义的。我想我需要在Stack类中创建一个构造函数来获取5,然后将其设置为数组长度。 – Nogg 2011-04-08 21:11:33