请利用两个栈s1和s2来模拟一个队列。已知栈的三个运算定义如下。PU3H(ST,x):元素x入ST栈;PoP(ST,x):ST栈项元素出栈,赋给变量x;Sempty(ST):判ST栈空否。那么如何用栈的运算来实现该队列的三个运算:enqueue:插入一个元素入队列;dequeue:删除一个元素出队列;queue_empty:判队列为空。(请写明算法的思想及必要的注释)