用Qt 实现循环队列,达到数据缓冲机制

一,循环队列的概念

       1. 队列的定义:一端插入元素, 另一端删除元素的线性表。

       2. 队列的分类:循环队列(单向的顺序表),双向队列(双向链表),优先队列(有顺序的完全二叉树)。

       3. 队列的特性:队列遵循先进后出的原则。队列的理解上,可以想象为一根左右开口的水管, 从左边进水,右边出水。我们只能从一端进, 另一端出。 

二,循环队列的设计原理

        循环队列的设计就像龟兔赛跑模式一样。生产者就是兔子,消费者就是乌龟,然后缓存就是环形跑道, 生产者向缓存不断写数据,消费者不断的读数据,保证数据的高效稳定。

设计注意事项:

        1.兔子跑太快,领先乌龟一圈时,数据被覆盖。可以控制生产者的速度。(性能有点影响)

         2.兔子跑完一圈时的处理, 缓存临界的处理。

         3.多线程数据的安全处理。

用Qt 实现循环队列,达到数据缓冲机制_第1张图片

三,循环队列示例讲解 

用Qt 实现循环队列,达到数据缓冲机制_第2张图片

四,关键实现代码:

        1,读写之前计算buffer
int  MyStream::CalReadBufSize(int nStartAddr, int

你可能感兴趣的:(QT遇到的疑难杂症,数据结构,qt)