栈实现队列,队列实现栈,push和pop是否合规,排序,数组实现栈,求两个数组的第K大数,数组中两个数和为n,三个数和为n,只出现一次的数字(其余都出现2次)
// 位异或,最后的结果为单值;扩展:a = b^c-->b = a^cc
//
// k = n-ai 遍历或查找是否有k;
//
//奇数栈1,偶数栈2;满时扩展
//栈排序:入第一个,如果堆顶小于目标值,弹出堆至堆顶大于目标值->新堆从大到小序列
//栈实现匹配问题
//队列实现栈:入队,两个中的非空队列;出队,非空队列全部出队并进另队至只剩一个->输出
//栈实现队列,入栈进栈1,出栈先检测栈2空不空,不空直接出,空的话将1全部弹出
void push(int a, stack *s1){
s1.push(a);
}
void pop(stack* s1, stack* s2){
if(s2.top!=null) s.pop();
else{
while(s1.top!=null){
int n = s1.top();
s1.pop();
s2.push(n);
s2.pop();
}
}
}
void ztod(){
stack* s1;
stack* s2;
push(a, s1);
pop(s1, s2);
}