[关闭]
@ghostfn1 2016-07-23T15:45:48.000000Z 字数 572 阅读 1711

数据结构之队列

C++ 算法


Update Time:160723 Afternoon Saturday.

队列是一种特殊的线性结构,只允许在队列的首部(head)进行删除操作,称为“出队”,在尾部(tail)只允许进行插入操作,称为“入队”。

先将队列的三个基本元素封装为一个结构体类型,队列的主体为data[100],引入整型变量head、tail来记录队列的队首、队尾。再定义结构体变量q,进行一系列的队列操作。

代码如下[1]

  1. #include <stdio.h>
  2. struct queue
  3. {
  4. int data[100];
  5. int head;
  6. int tail;
  7. };
  8. int main()
  9. {
  10. struct queue q;
  11. int i;
  12. //Initialization
  13. q.head=1;
  14. q.tail=1;
  15. for(i=1;i<=9;i++)
  16. {
  17. scanf("%d",&q.data[q.tail]);
  18. q.tail++;
  19. }
  20. while(q.head<q.tail)
  21. {
  22. //printf head
  23. printf("%d ",q.data[q.head]);
  24. q.head++;
  25. q.data[q.tail]=q.data[q.head];
  26. q.tail++;
  27. q.head++;
  28. }
  29. getchar();getchar();
  30. return 0;
  31. }

如:
输入:
1 2 3 4 5 6 7 8 9
结果:
1 3 5 7 9 4 8 6 2


[1] 《啊哈!算法》
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注