初始化2个堆栈对象:
Stack s1 = new Stack(), s2 = new Stack();
s1 = 0 0 0 0 0 0 0 0 0(10个元素的数组,开头为空)top:0
const int Rows = 10;
int[] Table = new int[Rows];
public void TableStack(int[] Table)
{
for (int i=0; i < Table.Length; i++)
{
}
}
我的问题是我如何将一个元素放在堆栈上(推送)或从堆栈中取出一个元素(pop)如下:
的推送:
s1.Push(5); // s1 = 5 0 0 0 0 0 0 0 0 0 (top:1)
s1.Push(9); // s1 = 5 9 0 0 0 0 0 0 0 0 (top:2)
弹出:
int number = s1.Pop(); // s1 = 5 0 0 0 0 0 0 0 0 0 0 (top:1) 9 got removed
我必须使用get&amp;设置,如果是这样,我怎么用数组实现这个? 不确定该用于什么。 任何提示高度赞赏。
程序使用以下驱动程序来测试Stack类(无法更改或修改):
public void ExecuteProgram()
{
Console.Title = "StackDemo";
Stack s1 = new Stack(), s2 = new Stack();
ShowStack(s1, "s1");
ShowStack(s2, "s2");
Console.WriteLine();
int getal = TryPop(s1);
ShowStack(s1, "s1");
TryPush(s2, 17);
ShowStack(s2, "s2");
TryPush(s2, -8);
ShowStack(s2, "s2");
TryPush(s2, 59);
ShowStack(s2, "s2");
Console.WriteLine();
for (int i = 1; i <= 3; i++)
{
TryPush(s1, 2 * i);
ShowStack(s1, "s1");
}
Console.WriteLine();
for (int i = 1; i <= 3; i++)
{
TryPush(s2, i * i);
ShowStack(s2, "s2");
}
Console.WriteLine();
for (int i = 1; i <= 6; i++)
{
getal = TryPop(s2);
//use number
ShowStack(s2, "s2");
}
}/*ExecuteProgram*/
问候。
答案 0 :(得分:2)
您可以使用内置的Stack<T>
,它会为您提供推,弹,窥视等。
答案 1 :(得分:1)
Stack对象上有Push和Pop方法。只需按照您的要求调用s1.Push和s1.Pop。
答案 2 :(得分:0)
提示:您需要在Stack
类中维护内部数组中最顶层元素的索引。
我不确定get / set是什么意思,但是很有可能,你在这里不需要它(特别是如果你真的是指属性)。