我有点学习数据结构,所以请原谅新手问题.问题是,我在C#中使用Stack类,我想随机访问元素.我知道我可以使用ElementAt随机访问:
Stack<int> mystack = new Stack<int>(4);
...//assume the stack is filled here
int value = mystack.ElementAt(2) // if I wanted element 2
Run Code Online (Sandbox Code Playgroud)
但我只能得到价值,我无法修改它.我的意思是,在List中,我可以将随机元素修改为:
List<int> mylist = new List<int>(4);
mylist[2] = 35;
Run Code Online (Sandbox Code Playgroud)
我想对Stack做同样的事情,但它没有索引器.也许这是不可能的,如果是这样,我也想知道原因.我知道当需要随机访问时,通常不会使用堆栈,但在解决问题时我仍然需要它.我最终找到了一个更好的方法,但我仍然想知道.最后,关于ElementAt(),它是O(1)还是O(N)??