我正在攻读Microsoft考试,其中一个准备问题如下:
您有一个包含整数值的堆栈。这些值按以下顺序压入堆栈:2,4,6,8。 执行以下操作序列:
流行音乐, 推3, 流行, 推4, 推6, 推7, 流行, 流行, 流行,
执行这些操作后,top元素的值是多少?
一个。 2
B中。 3
℃。 6
d。 7
正确答案:B
为什么B是正确的答案?
答案 0 :(得分:3)
堆栈是LIFO(后进先出)结构。 A" Pop"删除你放在它上面的最后一件事。
2 4 6 8
Pop
2 4 6
Push 3
2 4 6 3
Pop
2 4 6
Push 4
2 4 6 4
Push 6
2 4 6 4 6
Push 7
2 4 6 4 6 7
Pop
2 4 6 4 6
Pop
2 4 6 4
Pop
2 4 6
对我来说,6位于最后的 top (意味着将弹出的下一个元素),所以C将是正确的答案
答案 1 :(得分:0)
也同意答案...检查代码
namespace StackTest
{
class Program
{
static void Main(string[] args)
{
Stack st = new Stack();
// Starting
st.Push(2);
st.Push(4);
st.Push(6);
st.Push(8);
// Showing state
ShowStack(st,"Contenido inicial");
//Pop, Push 3, Pop, Push 4, Push 6, Push 7, Pop, Pop, Pop,
st.Pop();
ShowStack(st, "Quitar uno");
st.Push(3);
ShowStack(st, "Agregado 3");
st.Pop();
ShowStack(st, "Quitar uno");
st.Push(4);
ShowStack(st, "Agregado 4");
st.Push(6);
ShowStack(st, "Agregado 6");
st.Push(7);
ShowStack(st, "Agregado 7");
st.Pop();
st.Pop();
st.Pop();
ShowStack(st, "Quitar tres");
ShowStack(st,"Situacion Final");
Console.ReadKey();
// 2, 4 , 6 , 8
}
private static void ShowStack(Stack st,string message)
{
Console.WriteLine(message);
foreach (var item in st)
{
Console.WriteLine(item.ToString());
}
Console.WriteLine("-------------------");
}
}
}