title: Notes-queue队列tags: ACM
abbrlink: 64d83881
date: 2020-10-10 12:16:33

思路

队列的原理基本与站队一样,队首出,队尾入,变化以后也是大同小异,写起来主要就是注意struct的相关知识,以及伪指针(分别指向队首和队尾+1),队尾序号要+1以防首位变量数字重合造成不必要的麻烦(目前也不是很清楚会遇到什么)

代码

  1. #include<iostream>
  2. using namespace std;
  3. struct queue
  4. {
  5. int data[100];
  6. int head;
  7. int tail;
  8. };
  9. int main(){
  10. struct queue q;
  11. int i;
  12. q.head=1;
  13. q.tail=1;
  14. for(i=1; i<=9;i++)
  15. {
  16. cin>>q.data[q.tail];
  17. q.tail++;
  18. }
  19. while(q.head<q.tail)
  20. {
  21. cout<<q.data[q.head];
  22. q.head++;
  23. q.data[q.tail]=q.data[q.head];
  24. q.tail++;
  25. q.head++;
  26. }
  27. return 0;
  28. }

总结

写的过程中主要一开始用万能头和STL里面的queue冲突报错了。。(想了好久),其他没什么,队列作为广搜和Bellman-Ford的最短路核心算法还是很有必要理解并记忆的