我想在Dart中实现堆栈数据结构(不要与Flutter Stack小部件混淆),以便可以处理用于Flutter文本呈现的自定义TextStyles堆栈。
我知道使用堆栈可以推送和弹出值。这听起来与Queue类似,但我不确定是否有区别。
这不起作用:
final myStack = Queue<int>();
myStack.push(1);
final top = myStack.pop();
class Stack<T> {
final _stack = Queue<T>();
void push(T element) {
_stack.addLast(element);
}
T pop() {
T lastElement = _stack.last;
_stack.removeLast();
return lastElement;
}
}
AQueue
允许您修改两端,默认情况下为ListQueue
。有关更多信息,请参见此问题。
推送将添加到队列中,弹出将删除最后一个元素,然后返回该元素。
您也可以添加一个top
吸气剂来查看最后一个元素是什么,而无需将其弹出。
您现在可以像这样使用它:
final myStack = Stack<int>();
myStack.push(1);
final top = myStack.pop();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句