現在我正在創建一個堆棧類。主要程序是:創建一個將數字推到數組長度的構造函數
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