手机版

excel队列

时间:2021-09-22 来源:互联网 编辑:宝哥软件园 浏览:

队列的工作原理很简单,因为和现实生活中的队列一模一样。比如你在食堂窗口排队做饭,先到就先做饭,你做完饭我再做饭。

队列操作只有两种:队列入口和队列出口。将元素添加到队列中称为入队。从队列中取出一个元素,称为出列,如下图1所示。

图1

根据队列的工作原理,在图1所示的队列中,丁灿只被添加到队列的末尾,而第一个A将第一个离开队列。

接下来,我们使用VBA代码来实现队列。

队列结构需要两个类模块:QueueItem类模块和队列类模块。

QueueItem类模块

在QueueItem类模块中,存储了一个数据值和指向下一个元素的指针。代码如下:

下一个队列元素。

公共下一个项目作为队列项目

队列中当前元素的值。

作为变体的公共价值

队列类模块

在队列类模块中,有两个方法和一个属性。Add方法将元素添加到队列中,即执行入队操作。Remove方法移除队列中的元素,即执行出列操作;QueueEmpty属性确定队列是否为空。完整的代码如下:

指向队列列头的指针。

将qFront调暗为队列项目

指向队列列末尾的指针。

将队列作为队列项变暗

加入团队。

公共子添加(varNewItem AsVariant)

声明并创建新元素。

将qNew调暗为新队列项目

为新元素赋值。

qNew。Value=varNewItem

如果队列为空,前后指针都指向新元素。

如果队列为空,则

设置qFront=qNew

设置qRear=qNew

其他

将最后一个元素指针指向新元素。

设置qRear。NextItem=qNew

指向指向队列列末尾的新元素。

设置qRear=qNew

如果…就会结束

末端接头

离开队伍。

移除队列列头部的元素并返回其值。

公共函数移除()作为变量

如果队列为空,则返回空。

如果队列为空,则

移除=空

其他

获取队列列标题元素值。

移除=qFront。价值

如果队列中只有一个元素。

删除后队列为空。

如果前面是,那么

设置qFront=无

设置qRear=无

其他

设置qFront=qFront。下一个项目

如果…就会结束

结束条件

结束功能

判断队列是否为空。

属性获取队列空值()为布尔值

如果队列为空,则返回真。

QueueEmpty=((qFront什么也不是)和(qRear什么也不是))

结束属性

假设原来的队列是“A、B、C”,现在应该在队列中加入“D”。在Add方法中,第一个教师创建一个新节点并赋值,如下图2所示。

图2。

然后,进行连接,如下图3所示。

图3。

如果在添加新元素之前队列是空的,队列的头和尾都指向新元素,如下图4所示。

图4

删除元素时,从队列的头部开始,如下图5所示。原来,qFront指向a,现在指向B.

图5

队列类模块代码的图片版本如下:

例子

下面的例子只是演示了队列。第一个代码教师形成一个队列,依次向队列中添加“A-B-D”,然后移除队列中的元素。

创建新队列。

作为新队列模糊数量

子测试队列()

带qTest

加入团队。添加“a”。添加“b”。加上“c”。添加“d”。

调试。打印“出列序列:”

离开队伍。

不做就做。队列空

调试。打印。移除()

以…结尾

末端接头

运行结果如下图6所示。可见离队顺序和入队顺序是一样的。

图6

版权声明:excel队列是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。