Linux网络编程基础_5_传输层(下)--TCP协议
2014-03-17 19:07
204 查看
两个队列实现一个栈
思路:模拟栈中定义两个队列q1,q2。
push:模拟栈push数据,在q1中push,调用队列q1的push方法
pop:模拟栈pop数据,将q1的数据留出队尾的数据,其余的push到q2中,pop掉q1中剩下的最后一个元素。之后将q2的数据在push到q1中。(需要pop多个数据,需要写循环).
![](http://s2.51cto.com/wyfs02/M02/7E/F7/wKiom1cODR7y7TfcAABATAV0dZM740.png)
打印:需要像pop一样循环打印
代码:
本文出自 “做一个小小小司机” 博客,请务必保留此出处http://10799170.blog.51cto.com/10789170/1763521
思路:模拟栈中定义两个队列q1,q2。
push:模拟栈push数据,在q1中push,调用队列q1的push方法
pop:模拟栈pop数据,将q1的数据留出队尾的数据,其余的push到q2中,pop掉q1中剩下的最后一个元素。之后将q2的数据在push到q1中。(需要pop多个数据,需要写循环).
![](http://s2.51cto.com/wyfs02/M02/7E/F7/wKiom1cODR7y7TfcAABATAV0dZM740.png)
打印:需要像pop一样循环打印
代码:
class Stack { public: void push(const int& x) { _qu1.push(x); } void pop() { if (_qu1.empty()) { cout << "empty stack!"<<endl; return; } while (_qu1.size() - 1) { _qu2.push(_qu1.front()); _qu1.pop(); } _qu1.pop(); if (_qu1.empty()) { while (!_qu2.empty()) { _qu1.push(_qu2.front()); _qu2.pop(); } } else { assert(false); } } void print() { queue<int> tmp1 = _qu1; queue<int> tmp2= _qu2; while (tmp1.size()) { while (tmp1.size() - 1) { tmp2.push(tmp1.front()); tmp1.pop(); } cout << tmp1.front() << "->"; tmp1.pop(); if (tmp1.empty()) { while (!tmp2.empty()) { tmp1.push(tmp2.front()); tmp2.pop(); } } else { assert(false); } } cout << endl; } private: queue<int> _qu1; queue<int> _qu2; };[b][b]以上就是本人在学习过程中的一些经验总结。当然,本人能力有限,难免会有纰漏,希望大家可以指正。[/b][/b]
本文出自 “做一个小小小司机” 博客,请务必保留此出处http://10799170.blog.51cto.com/10789170/1763521
相关文章推荐
- Linux网络编程之TCP协议(基础班)
- 基于TCP协议的文件传输,传输带文件名等信息的文件流
- 打好网络传输的基础布线系统智能化
- 基于TCP协议的文件传输,传输带文件名等信息的文件流
- Linux基础命令介绍七:网络传输与安全 wget curl rsync iptables
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- 【一】Opencv结合socket进行视频传输(TCP协议)
- 网络基础知识讲座之九:初步理解TCP协议
- Linux网络编程基础(一)
- OpenCV结合socket进行实时视频传输(TCP协议)
- linux基础unit12-系统之间文档的传输
- 黑马程序员—java技术blog—第三篇 TCP协议及基础应用
- Linux网络编程系列-TCP传输控制
- (传输层)TCP协议
- 转载_BlueTooth: 蓝牙基础知识进阶——物理链路和逻辑传输
- TCP协议如何保证可靠传输
- RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比
- linux网络编程基础
- 基于TCP协议的项目架构之Socket流传输的实现
- linux网络编程之TCP/IP基础(一):TCP/IP协议栈与数据报封装