//思路q1是專職進出棧的,q2只是個中轉站前提已知
typedef struct
queue
queue;
void initqueue(queue *q);
void enqueue(queue *q, int
key);
int dequeue(queue *q);
int sizeofqueue(queue *q);
int isqueueempty(queue *q);
int isqueuefull(queue *q);
圖示
參考**
void push(queue *q1, queue *q2, int思路二:k)int pop(queue *q1, queue *q2)
else
tmp =dequeue(q1);
while(isqueueempty(q2) == 0
)
return
tmp;}}
#include #includeusing
namespace
std;
class
cstack
void enque(int num)//
入隊的實現
int deque()//
出隊的實現
res=q1.front();
q1.pop();
//cout
else
//q2不為空,q2出隊剩下乙個元素,就是出棧的元素
res=q2.front();
q2.pop();
//cout
count--;
return
res;
}int getnum() const
private
: queue
q1;queue
q2;intcount;
};int
main()
return0;
}
兩個棧實現佇列 兩個佇列實現棧
1.兩個棧實現佇列 大致思路 入佇列時,將元素入棧s1,出佇列時,將s2中的元素出棧即可,如果s2為空,那麼將s1中 s1.size 1 個元素出棧,加入到s2中,然後將s1中最後乙個元素出棧,即完成了出佇列的操作 include using namespace std include includ...
兩個棧實現佇列,兩個佇列實現棧
include include include using namespace std 使用兩個棧實現佇列,實現了push,pop,front操作 其中棧s2是輔助棧,push直接在s1中插入 pop從s2中出棧,如果s2是空的,將s1倒進s2,然後再出棧,這樣減少了倒棧次數,比較高效。front就...
兩個棧實現佇列 兩個佇列實現棧
一 題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。二 1 自己 基本思路 乙個棧用於壓縮,乙個專門用於彈出。因為棧是先進後出,所有的元素入棧再出棧,再入棧就可以將順序調整過來。但是沒有想到優化。class solution int pop int tem...