从品牌网站建设到网络营销策划,从策略到执行的一站式服务
数据结构用两个栈实现一个队列的实例
成都创新互联公司是一家以重庆网站建设、网页设计、品牌设计、软件运维、成都网站营销、小程序App开发等移动开发为一体互联网公司。已累计为成都办公空间设计等众行业中小客户提供优质的互联网建站和软件开发服务。
栈是先进后出,队列是先进先出
每次元素都push在st1中,pop的时候如果st2为空,将st1的栈顶元素放在st2的栈底,这样st1的所有元素都放在st2中,st1的栈底就是st2的栈顶,pop st2的栈顶,这样就满足了队列的先进先出。
#includeusing namespace std; #include #include template class SQueue { public: void Push(const T& value); T Pop(); private: stack st1; stack st2; }; template T SQueue ::Pop() { if (st2.size() <= 0) { if (st1.size() == 0) { exit(1); } while ((st1.size() > 0)) { T& top = st1.top(); st2.push(top); st1.pop(); } } T head = st2.top(); st2.pop(); return head; } template void SQueue ::Push(const T& value) { st1.push(value); } int main() { SQueue sq; for (int i = 0; i < 10; ++i) { sq.Push(i); } for (int i = 0; i < 5; ++i) { cout << sq.Pop() << " "; } for (int i = 0; i < 5; ++i) //分两次验证 { cout << sq.Pop() << " "; } cout << endl; system("pause"); return 0; }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图