class MyQueue {
dynamic first;
dynamic last;
MyQueue() {
this.first = [];
this.last = [] ;
}
void push(int x) {
first.add(x);
// print(first);
}
int pop() {
if (last.isEmpty) {
// Transfer elements from stack1 to stack2
while (first.isNotEmpty) {
last.add(first.removeLast());
}
}
return last.isNotEmpty ? last.removeLast() : null;
}
int peek() {
if(last.isNotEmpty){
this.last[last.length-1];
// print(last);
return last[last.length -1];
}
return first[0];
}
bool empty() {
return last == []? true: false;
}
@override
String toString(){
return' $last';
}
}
void main(){
MyQueue queue = new MyQueue();
queue.push(1);
queue.push(2);
queue.push(3);
queue.pop();
print(queue);
print(queue.peek());
// queue.push(4);
}