码迷,mamicode.com
首页 > 编程语言 > 详细

《啊哈算法》——栈、队列、链表

时间:2016-05-05 22:13:00      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

  通过题目我们可以看出这篇文章将介绍什么,栈、队列、链表本质上是数据结构中的东西,通过这章的学习能够给今后数据结构的学习打下一点基础。

 

  队列:

  我们通过一个简单的谜题来引入队列的概念,给出一串9位的加密QQ号,对于这串数字,删除第一位数字,然后将第二位数字放到这串数字的最后。反复操作,直到这一串数字的所有数字都被删除。在这个过程中,按照数字删除先后顺序排列的9位数字的便是解密后的QQ号,请问解密后的QQ号是多少?

  其实从数学原理的角度,这个问题并没有什么难度,非常好理解,但关键在于,如何通过程序来高效的计算呢?

  这里便用到队列的概念。我们将这9个数字看成一个有顺序的队并用数组记录,用变量head和tail记录这个队的队首和队尾后面的一个元素(为了方便判断队列为空,将tail指向队尾后面的元素),容易看到,我们对这个含有9个字符串的队列进行的操作本质上就是入队和出队,所谓入队即在队尾后添加一个元素,所谓出队即删除一个头元素。那么我们基于这样一个简单的数据结构,便可以很好的完成上面解密QQ号的模拟运算了。

 

#include<stdio.h>
struct queue
{
     int data[100];
      int head , tail;
};

int main()
{
     struct queue q;
     int i;
     q.head = 1;
     q.tail = 1;
     for(i = 1;i <= 9;i++)
     {
          scanf("%d",&q.data[q.tail]);
          q.tail++;
     }

     while(q.head < q.tail)
     {
           printf("%d",q.data[q.head]);
           q.head++;

           q.data[q.tail] = q.data[q.head];
           q.tail++;

           q.head++;
     }

     return 0;
}

 

《啊哈算法》——栈、队列、链表

标签:

原文地址:http://www.cnblogs.com/rhythmic/p/5462936.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!