【算法】用固定数组实现FIFO buffer
2014-01-15 20:09
357 查看
果然,死的很惨啊,哈哈哈。
【问题】用固定长度的数组实现FIFO buffer,写个lib库。(毛线是lib库?)
事后重新写了一遍,估计还是有问题,但肯定比googleDoc上那个要完善的多。代码如下:
【问题】用固定长度的数组实现FIFO buffer,写个lib库。(毛线是lib库?)
事后重新写了一遍,估计还是有问题,但肯定比googleDoc上那个要完善的多。代码如下:
bool bufferIsFull = false; bool bufferIsEmpty = false; template<class T> class CFifoBuffer { public: CFifoBuffer(int s); ~CFifoBuffer(){}; T get(); void put(T data); void print(); private: T* buffer; int size; int readPos; int writePos; }; template <class T> CFifoBuffer<T>::CFifoBuffer(int s) { size = s; buffer = (T*)malloc(sizeof(T) * size); readPos = 0; writePos = 0; } //从队尾放入数据 template <class T> void CFifoBuffer<T>::put(T data){ if ((writePos + 1)%size == readPos) { bufferIsFull = true; return; } buffer[writePos] = data; writePos = (writePos + 1) % size; } //从队头取出数据 template <class T> T CFifoBuffer<T>::get() { if (writePos == readPos) { bufferIsEmpty = true; return 0; } T temp = buffer[readPos]; readPos = (readPos + 1) % size; return temp; }
相关文章推荐
- 数据结构与算法-----队列-使用数组(顺序结构)实现
- 用 公平的算法 把一个数组打乱(两种实现方式)
- 【算法】求多个数组中的交集(Java语言实现)
- Java基于可扩充数组的向量实现(算法源码)
- 从一个数组中找出第k小元素的随机化算法 c语言实现 算法导论第九章
- 算法导论------------栈(stack)简单的数组实现
- 【算法】实现对中文字符串数组按照音序排列
- 基于数组二分查找算法的实现
- 数据结构和算法--队列的数组实现
- 循环数组实现FIFO
- 获取数组排序后的index算法实现
- KMP模式匹配算法原理分析、next数组优化及java实现
- 使用不完全填满数组的实现的循环FIFO(队列)
- 【坐在马桶上看算法】算法8:巧妙的邻接表(数组实现)
- 程序员面试100题(算法)之找出数组中两个只出现一次的数字(位运算实现)
- 假设一个数组A[n]数据均为整形,设计一个O(n)的算法,实现将所有奇数放在数组左侧,所有偶数放在右侧
- 【数据结构与算法】数组应用2:矩阵转置(Java实现)
- 编写算法:实现奇数位于数组的前半部分,偶数位于数组的后半部分
- php 妙用数组键值对实现固定数据的查询
- 算法:C实现 数组