找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 86|回复: 0

[模块] 基础模块-队列类示例1-7

[复制链接]

16

主题

5

回帖

76

积分

注册会员

积分
76
发表于 2025-9-29 18:10:06 | 显示全部楼层 |阅读模式
本帖最后由 qq1073176068 于 2025-9-30 16:32 编辑

1.初始化
  1. <font size="5">// 1. 定义模板队列类(存储整型数据)</font>
  2. <font size="5">队列类<整型> intQueue</font>
  3. <font size="5">// 2. 调用初始化()方法,启用多线程访问保护(必须先初始化)</font>
  4. <font size="5">intQueue.初始化()</font>
  5. <font size="5">调试输出("整型队列初始化完成")  // 输出结果:整型队列初始化完成</font>
  6. <font size="5">// 3. 初始化后执行“加入”操作(按“先进先出”顺序添加10、20、30,队列内顺序:10→20→30)</font>
  7. <font size="5">intQueue.加入(10)</font>
  8. <font size="5">intQueue.加入(20)</font>
  9. <font size="5">intQueue.加入(30)</font>
  10. <font size="5">// 4. 调用“取大小”验证元素数量</font>
  11. <font size="5">调试输出("整型队列元素数量:" + 到文本(intQueue.取大小()))  // 输出结果:整型队列元素数量:3</font>
  12. <font size="5">// 5. 调用“弹出”移除队列首个元素(队列“先进先出”特性,首个元素10被弹出)</font>
  13. <font size="5">整型 poppedVal = intQueue.弹出()</font>
  14. <font size="5">调试输出("弹出的末尾元素:" + 到文本(poppedVal))  // 输出结果:弹出的末尾元素:10</font>
  15. <font size="5">调试输出("弹出后队列元素数量:" + 到文本(intQueue.取大小()))  // 输出结果:弹出后队列元素数量:2</font>
  16. <font size="5">// 6. 调用“是否为空”判断队列状态(此时队列含20、30,非空)</font>
  17. <font size="5">调试输出("整型队列是否为空:" + 到文本(intQueue.是否为空()))  // 输出结果:整型队列是否为空:0</font>
  18. <font size="5">// 7. 调用“清空”移除所有元素,再验证空状态</font>
  19. <font size="5">intQueue.清空()</font>
  20. <font size="5">调试输出("清空后队列是否为空:" + 到文本(intQueue.是否为空()))  // 输出结果:清空后队列是否为空:1</font>
  21. <font size="5">// 8. 调用“释放”释放队列内存资源(不再使用时调用)</font>
  22. <font size="5">intQueue.释放()</font>
  23. <font size="5">调试输出("整型队列资源释放完成")  // 输出结果:整型队列资源释放完成</font>
复制代码



  1. <font size="5">// 1. 定义模板队列类(存储文本型数据,遵循“先进先出”逻辑)</font>
  2. <font size="5">队列类<文本型> strQueue</font>
  3. <font size="5">// 2. 调用初始化()方法(必须先初始化,否则后续操作会异常)</font>
  4. <font size="5">strQueue.初始化()</font>
  5. <font size="5">调试输出("文本型队列初始化完成")  // 输出结果:文本型队列初始化完成</font>
  6. <font size="5">// 3. 初始化后执行“加入”操作(按顺序添加文本元素,队列内顺序:用户登录→用户操作→用户退出)</font>
  7. <font size="5">strQueue.加入("用户登录:admin")</font>
  8. <font size="5">strQueue.加入("用户操作:修改密码")</font>
  9. <font size="5">strQueue.加入("用户退出:admin")</font>
  10. <font size="5">// 4. 调用“取大小”查看当前元素总数</font>
  11. <font size="5">调试输出("文本型队列元素数量:" + 到文本(strQueue.取大小()))  // 输出结果:文本型队列元素数量:3</font>
  12. <font size="5">// 5. 第一次调用“弹出”(移除队列首个元素,即最早加入的“用户登录:admin”)</font>
  13. <font size="5">文本型 poppedStr1 = strQueue.弹出()</font>
  14. <font size="5">调试输出("第一次弹出的元素:" + poppedStr1)  // 输出结果:第一次弹出的元素:用户登录:admin</font>
  15. <font size="5">// 6. 第二次调用“弹出”(移除当前队列首个元素“用户操作:修改密码”)</font>
  16. <font size="5">文本型 poppedStr2 = strQueue.弹出()</font>
  17. <font size="5">调试输出("第二次弹出的元素:" + poppedStr2)  // 输出结果:第二次弹出的元素:用户操作:修改密码</font>
  18. <font size="5">// 7. 调用“是否为空”判断状态(此时队列剩余“用户退出:admin”,非空)</font>
  19. <font size="5">调试输出("两次弹出后队列是否为空:" + 到文本(strQueue.是否为空()))  // 输出结果:两次弹出后队列是否为空:0</font>
  20. <font size="5">// 8. 调用“清空”移除剩余元素,再调用“释放”释放资源(不再使用队列时执行)</font>
  21. <font size="5">strQueue.清空()</font>
  22. <font size="5">strQueue.释放()</font>
  23. <font size="5">调试输出("文本型队列清空并释放完成")  // 输出结果:文本型队列清空并释放完成</font>
复制代码

--
2.释放
  1. <font size="5">// 示例1:整型队列释放操作(释放≠清空,保留残留元素)</font>
  2. <font size="5">队列类<整型> intQueue</font>
  3. <font size="5">// 1. 初始化+加入+弹出(残留3个元素:30、40、50)</font>
  4. <font size="5">intQueue.初始化()</font>
  5. <font size="5">intQueue.加入(10)</font>
  6. <font size="5">intQueue.加入(20)</font>
  7. <font size="5">intQueue.加入(30)</font>
  8. <font size="5">intQueue.加入(40)</font>
  9. <font size="5">intQueue.加入(50)</font>
  10. <font size="5">intQueue.弹出()  // 弹10</font>
  11. <font size="5">intQueue.弹出()  // 弹20</font>
  12. <font size="5">调试输出("加入元素后 - 队列大小:" + 到文本(intQueue.取大小()))  // 输出结果:加入元素后 - 队列大小:3</font>
  13. <font size="5">// 2. 释放(不删残留元素)</font>
  14. <font size="5">intQueue.释放()</font>
  15. <font size="5">调试输出("整型队列已执行释放操作")  // 输出结果:整型队列已执行释放操作</font>
  16. <font size="5">调试输出("释放后尝试访问队列(验证释放效果):")  // 输出结果:释放后尝试访问队列(验证释放效果):</font>
  17. <font size="5">// 3. 重新初始化(保留残留3个,再加6个新元素,总9个)</font>
  18. <font size="5">intQueue.初始化()</font>
  19. <font size="5">intQueue.加入(60)</font>
  20. <font size="5">intQueue.加入(70)</font>
  21. <font size="5">intQueue.加入(80)</font>
  22. <font size="5">intQueue.加入(90)</font>
  23. <font size="5">intQueue.加入(100)</font>
  24. <font size="5">intQueue.加入(110)</font>
  25. <font size="5">调试输出("重新初始化后 - 队列大小:" + 到文本(intQueue.取大小()))  // 输出结果:重新初始化后 - 队列大小:9</font>
  26. <font size="5">// 4. 最终释放</font>
  27. <font size="5">intQueue.释放()</font>
  28. <font size="5">调试输出("整型队列最终释放完成")  // 输出结果:整型队列最终释放完成</font>
复制代码



  1. <font size="5">// 示例2:文本型队列释放操作(释放≠清空,残留元素复用)</font>
  2. <font size="5">队列类<文本型> logQueue</font>
  3. <font size="5">// 1. 初始化+加入+弹出(残留“操作2”)</font>
  4. <font size="5">logQueue.初始化()</font>
  5. <font size="5">logQueue.加入("操作1:打开文件")</font>
  6. <font size="5">logQueue.加入("操作2:编辑内容")</font>
  7. <font size="5">logQueue.弹出()  // 弹“操作1”</font>
  8. <font size="5">调试输出("文本型队列初始状态 - 大小:" + 到文本(logQueue.取大小()))  // 输出结果:文本型队列初始状态 - 大小:2</font>
  9. <font size="5">// 2. 释放(不删“操作2”)</font>
  10. <font size="5">logQueue.释放()</font>
  11. <font size="5">调试输出("文本型队列释放完成(业务流程结束)")  // 输出结果:文本型队列释放完成(业务流程结束)</font>
  12. <font size="5">// 3. 重新初始化(直接弹出残留的“操作2”)</font>
  13. <font size="5">调试输出("后续业务需复用队列 - 重新初始化:")  // 输出结果:后续业务需复用队列 - 重新初始化:</font>
  14. <font size="5">logQueue.初始化()</font>
  15. <font size="5">调试输出("重新初始化后 - 队列元素:" + logQueue.弹出())  // 输出结果:重新初始化后 - 队列元素:操作2:编辑内容</font>
  16. <font size="5">// 4. 最终释放</font>
  17. <font size="5">logQueue.释放()</font>
  18. <font size="5">调试输出("文本型队列最终释放,资源回收完成")  // 输出结果:文本型队列最终释放,资源回收完成</font>
复制代码

--
3.加入
  1. <font size="5">// 示例1:整型队列调用加入(),添加元素到末尾</font>
  2. <font size="5">队列类<整型> intQueue</font>
  3. <font size="5">// 1. 初始化队列(必须先初始化)</font>
  4. <font size="5">intQueue.初始化()</font>
  5. <font size="5">// 2. 调用加入(),向队列末尾添加整型元素</font>
  6. <font size="5">intQueue.加入(10)</font>
  7. <font size="5">intQueue.加入(20)</font>
  8. <font size="5">intQueue.加入(30)</font>
  9. <font size="5">// 3. 验证加入结果(队列大小为3,末尾元素为30)</font>
  10. <font size="5">调试输出("加入3个整型元素后 - 队列大小:" + 到文本(intQueue.取大小()))  // 输出结果:加入3个整型元素后 - 队列大小:3</font>
  11. <font size="5">intQueue.弹出()  // 弹首元素10</font>
  12. <font size="5">intQueue.弹出()  // 弹首元素20</font>
  13. <font size="5">调试输出("弹出2个元素后,末尾残留元素:" + 到文本(intQueue.取大小()))  // 输出结果:弹出2个元素后,末尾残留元素:1</font>
  14. <font size="5">// 4. 释放队列</font>
  15. <font size="5">intQueue.释放()</font>
  16. <font size="5">调试输出("整型队列释放完成")  // 输出结果:整型队列释放完成</font>
复制代码



  1. <font size="5">// 示例2:文本型队列调用加入(),添加文本到末尾</font>
  2. <font size="5">队列类<文本型> strQueue</font>
  3. <font size="5">// 1. 初始化队列</font>
  4. <font size="5">strQueue.初始化()</font>
  5. <font size="5">// 2. 调用加入(),向队列末尾添加文本元素</font>
  6. <font size="5">strQueue.加入("消息1:接收数据")</font>
  7. <font size="5">strQueue.加入("消息2:处理数据")</font>
  8. <font size="5">// 3. 验证加入结果(队列大小为2,弹出首元素后残留末尾元素)</font>
  9. <font size="5">调试输出("加入2条文本后 - 队列大小:" + 到文本(strQueue.取大小()))  // 输出结果:加入2条文本后 - 队列大小:2</font>
  10. <font size="5">strQueue.弹出()  // 弹首元素“消息1”</font>
  11. <font size="5">调试输出("弹出首元素后,末尾残留:" + strQueue.弹出())  // 输出结果:弹出首元素后,末尾残留:消息2:处理数据</font>
  12. <font size="5">// 4. 释放队列</font>
  13. <font size="5">strQueue.释放()</font>
  14. <font size="5">调试输出("文本型队列释放完成")  // 输出结果:文本型队列释放完成</font>
复制代码

--
4.弹出
  1. <font size="5">// 示例1:整型队列调用弹出(),返回并移除首个成员</font>
  2. <font size="5">队列类<整型> intQueue</font>
  3. <font size="5">// 1. 初始化+加入元素(队列顺序:5→15→25)</font>
  4. <font size="5">intQueue.初始化()</font>
  5. <font size="5">intQueue.加入(5)</font>
  6. <font size="5">intQueue.加入(15)</font>
  7. <font size="5">intQueue.加入(25)</font>
  8. <font size="5">// 2. 调用弹出(),返回首个成员并移除</font>
  9. <font size="5">整型 popVal1 = intQueue.弹出()</font>
  10. <font size="5">调试输出("第一次弹出的首个成员:" + 到文本(popVal1))  // 输出结果:第一次弹出的首个成员:5</font>
  11. <font size="5">// 3. 再次弹出,验证队列顺序</font>
  12. <font size="5">整型 popVal2 = intQueue.弹出()</font>
  13. <font size="5">调试输出("第二次弹出的首个成员:" + 到文本(popVal2))  // 输出结果:第二次弹出的首个成员:15</font>
  14. <font size="5">调试输出("弹出2次后队列大小:" + 到文本(intQueue.取大小()))  // 输出结果:弹出2次后队列大小:1</font>
  15. <font size="5">// 4. 释放队列</font>
  16. <font size="5">intQueue.释放()</font>
复制代码



  1. <font size="5">// 示例2:文本型队列调用弹出(),返回并移除首个文本成员</font>
  2. <font size="5">队列类<文本型> strQueue</font>
  3. <font size="5">// 1. 初始化+加入文本(队列顺序:"任务1"→"任务2"→"任务3")</font>
  4. <font size="5">strQueue.初始化()</font>
  5. <font size="5">strQueue.加入("任务1:备份数据")</font>
  6. <font size="5">strQueue.加入("任务2:同步文件")</font>
  7. <font size="5">strQueue.加入("任务3:生成报告")</font>
  8. <font size="5">// 2. 弹出首个文本成员,接收返回值</font>
  9. <font size="5">文本型 popStr = strQueue.弹出()</font>
  10. <font size="5">调试输出("弹出的首个任务:" + popStr)  // 输出结果:弹出的首个任务:任务1:备份数据</font>
  11. <font size="5">// 3. 验证剩余成员(队列首元素变为"任务2")</font>
  12. <font size="5">调试输出("剩余任务数量:" + 到文本(strQueue.取大小()))  // 输出结果:剩余任务数量:2</font>
  13. <font size="5">调试输出("当前首个任务:" + strQueue.弹出())  // 输出结果:当前首个任务:任务2:同步文件</font>
  14. <font size="5">// 4. 释放队列</font>
  15. <font size="5">strQueue.释放()</font>
复制代码

--
5.是否为空
  1. <font size="5">// 示例1:整型队列调用是否为空(),判断队列空状态</font>
  2. <font size="5">队列类<整型> intQueue</font>
  3. <font size="5">// 1. 初始化后直接判断(队列无元素,返回真)</font>
  4. <font size="5">intQueue.初始化()</font>
  5. <font size="5">调试输出("初始化后队列是否为空:" + 到文本(intQueue.是否为空()))  // 输出结果:初始化后队列是否为空:1(真)</font>
  6. <font size="5">// 2. 加入元素后判断(队列有元素,返回假)</font>
  7. <font size="5">intQueue.加入(80)</font>
  8. <font size="5">intQueue.加入(90)</font>
  9. <font size="5">调试输出("加入2个整型元素后是否为空:" + 到文本(intQueue.是否为空()))  // 输出结果:加入2个整型元素后是否为空:0(假)</font>
  10. <font size="5">// 3. 弹出所有元素后判断(队列空,返回真)</font>
  11. <font size="5">intQueue.弹出()</font>
  12. <font size="5">intQueue.弹出()</font>
  13. <font size="5">调试输出("弹出所有元素后是否为空:" + 到文本(intQueue.是否为空()))  // 输出结果:弹出所有元素后是否为空:1(真)</font>
  14. <font size="5">// 4. 释放队列</font>
  15. <font size="5">intQueue.释放()</font>
复制代码



  1. <font size="5">// 示例2:文本型队列调用是否为空(),结合业务逻辑判断</font>
  2. <font size="5">队列类<文本型> logQueue</font>
  3. <font size="5">// 1. 初始化+加入日志(非空,返回假)</font>
  4. <font size="5">logQueue.初始化()</font>
  5. <font size="5">logQueue.加入("日志1:系统启动")</font>
  6. <font size="5">调试输出("加入1条日志后是否为空:" + 到文本(logQueue.是否为空()))  // 输出结果:加入1条日志后是否为空:0(假)</font>
  7. <font size="5">// 2. 弹出日志后判断(空,返回真)</font>
  8. <font size="5">logQueue.弹出()</font>
  9. <font size="5">调试输出("弹出日志后是否为空:" + 到文本(logQueue.是否为空()))  // 输出结果:弹出日志后是否为空:1(真)</font>
  10. <font size="5">// 3. 复用队列:加入新日志后再次判断(非空,返回假)</font>
  11. <font size="5">logQueue.加入("日志2:用户登录")</font>
  12. <font size="5">调试输出("重新加入日志后是否为空:" + 到文本(logQueue.是否为空()))  // 输出结果:重新加入日志后是否为空:0(假)</font>
  13. <font size="5">// 4. 释放队列</font>
  14. <font size="5">logQueue.释放()</font>
复制代码

--
6.清空
  1. <font size="5">// 示例1:整型队列调用清空(),删除所有成员</font>
  2. <font size="5">队列类<整型> intQueue</font>
  3. <font size="5">// 1. 初始化+加入元素(队列含3个元素:100、200、300)</font>
  4. <font size="5">intQueue.初始化()</font>
  5. <font size="5">intQueue.加入(100)</font>
  6. <font size="5">intQueue.加入(200)</font>
  7. <font size="5">intQueue.加入(300)</font>
  8. <font size="5">调试输出("清空前队列大小:" + 到文本(intQueue.取大小()))  // 输出结果:清空前队列大小:3</font>
  9. <font size="5">// 2. 调用清空(),删除所有整型成员</font>
  10. <font size="5">intQueue.清空()</font>
  11. <font size="5">// 3. 验证清空效果(队列空,大小为0)</font>
  12. <font size="5">调试输出("清空后队列是否为空:" + 到文本(intQueue.是否为空()))  // 输出结果:清空后队列是否为空:1(真)</font>
  13. <font size="5">调试输出("清空后队列大小:" + 到文本(intQueue.取大小()))  // 输出结果:清空后队列大小:0</font>
  14. <font size="5">// 4. 清空后可重新加入元素</font>
  15. <font size="5">intQueue.加入(400)</font>
  16. <font size="5">调试输出("重新加入元素后大小:" + 到文本(intQueue.取大小()))  // 输出结果:重新加入元素后大小:1</font>
  17. <font size="5">intQueue.释放()</font>
复制代码



  1. <font size="5">// 示例2:文本型队列调用清空(),删除所有文本成员</font>
  2. <font size="5">队列类<文本型> strQueue</font>
  3. <font size="5">// 1. 初始化+加入文本(队列含2条消息:"通知1"、"通知2")</font>
  4. <font size="5">strQueue.初始化()</font>
  5. <font size="5">strQueue.加入("通知1:版本更新")</font>
  6. <font size="5">strQueue.加入("通知2:数据备份")</font>
  7. <font size="5">调试输出("清空前队列大小:" + 到文本(strQueue.取大小()))  // 输出结果:清空前队列大小:2</font>
  8. <font size="5">// 2. 调用清空(),删除所有文本成员</font>
  9. <font size="5">strQueue.清空()</font>
  10. <font size="5">// 3. 验证清空效果(无残留元素)</font>
  11. <font size="5">调试输出("清空后是否为空:" + 到文本(strQueue.是否为空()))  // 输出结果:清空后是否为空:1(真)</font>
  12. <font size="5">// 4. 释放队列</font>
  13. <font size="5">strQueue.释放()</font>
复制代码

--
7.取大小
  1. <font size="5">// 示例1:整型队列调用取大小(),获取成员数量</font>
  2. <font size="5">队列类<整型> intQueue</font>
  3. <font size="5">// 1. 初始化后取大小(队列空,大小为0)</font>
  4. <font size="5">intQueue.初始化()</font>
  5. <font size="5">调试输出("初始化后队列大小:" + 到文本(intQueue.取大小()))  // 输出结果:初始化后队列大小:0</font>
  6. <font size="5">// 2. 加入元素后取大小(添加3个整型元素,大小为3)</font>
  7. <font size="5">intQueue.加入(15)</font>
  8. <font size="5">intQueue.加入(25)</font>
  9. <font size="5">intQueue.加入(35)</font>
  10. <font size="5">调试输出("加入3个元素后大小:" + 到文本(intQueue.取大小()))  // 输出结果:加入3个元素后大小:3</font>
  11. <font size="5">// 3. 弹出元素后取大小(移除1个元素,大小为2)</font>
  12. <font size="5">intQueue.弹出()</font>
  13. <font size="5">调试输出("弹出1个元素后大小:" + 到文本(intQueue.取大小()))  // 输出结果:弹出1个元素后大小:2</font>
  14. <font size="5">// 4. 清空后取大小(删除所有元素,大小为0)</font>
  15. <font size="5">intQueue.清空()</font>
  16. <font size="5">调试输出("清空后队列大小:" + 到文本(intQueue.取大小()))  // 输出结果:清空后队列大小:0</font>
  17. <font size="5">intQueue.释放()</font>
复制代码



  1. <font size="5">// 示例2:文本型队列调用取大小(),结合业务场景获取数量</font>
  2. <font size="5">队列类<文本型> taskQueue</font>
  3. <font size="5">// 1. 初始化+加入任务(添加2条任务,大小为2)</font>
  4. <font size="5">taskQueue.初始化()</font>
  5. <font size="5">taskQueue.加入("任务1:整理文档")</font>
  6. <font size="5">taskQueue.加入("任务2:发送邮件")</font>
  7. <font size="5">调试输出("初始任务数量:" + 到文本(taskQueue.取大小()))  // 输出结果:初始任务数量:2</font>
  8. <font size="5">// 2. 处理任务(弹出1条,剩余1条)</font>
  9. <font size="5">taskQueue.弹出()</font>
  10. <font size="5">调试输出("处理1条任务后剩余数量:" + 到文本(taskQueue.取大小()))  // 输出结果:处理1条任务后剩余数量:1</font>
  11. <font size="5">// 3. 补充任务后取大小(新增2条,总大小3)</font>
  12. <font size="5">taskQueue.加入("任务3:会议准备")</font>
  13. <font size="5">taskQueue.加入("任务4:数据统计")</font>
  14. <font size="5">调试输出("补充任务后总数量:" + 到文本(taskQueue.取大小()))  // 输出结果:补充任务后总数量:3</font>
  15. <font size="5">taskQueue.释放()</font>
复制代码

--

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2025-10-18 18:58 , Processed in 0.087236 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表