Sur*_*gch 5 queue stack dart flutter
我想在 Dart 中实现一个堆栈数据结构(不要与 Flutter Stack 小部件混淆),以便我可以处理用于 Flutter 文本渲染的自定义 TextStyle 堆栈。
我知道使用堆栈您可以推送和弹出值。这听起来与 Queue 相似,但我不确定其中的区别。
这不起作用:
final myStack = Queue<int>();
myStack.push(1);
final top = myStack.pop();
Run Code Online (Sandbox Code Playgroud)
class Stack<T> {
final _stack = Queue<T>();
void push(T element) {
_stack.addLast(element);
}
T pop() {
final T lastElement = _stack.last;
_stack.removeLast();
return lastElement;
}
void clear() {
_stack.clear();
}
bool get isEmpty => _stack.isEmpty;
}
Run Code Online (Sandbox Code Playgroud)
AQueue
允许您修改两端,默认情况下是 a ListQueue
。有关更多信息,请参阅此问题。
推送是添加到队列中,弹出是删除最后一个元素,然后返回该元素。
您还可以添加一个top
getter 来查看最后一个元素是什么而不弹出它。
你现在可以这样使用它:
final myStack = Stack<int>();
myStack.push(1);
final top = myStack.pop();
Run Code Online (Sandbox Code Playgroud)
这是我使用的课程
import 'dart:collection';
class Stack<T> {
final _stack = Queue<T>();
int get length => _stack.length;
bool canPop() => _stack.isNotEmpty;
void clearStack(){
while(_stack.isNotEmpty){
_stack.removeLast();
}
}
void push(T element) {
_stack.addLast(element);
}
T pop() {
T lastElement = _stack.last;
_stack.removeLast();
return lastElement;
}
T peak() => _stack.last;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3089 次 |
最近记录: |