数据结构之栈、队列、链表

栈和队列

简介

栈与队列都是动态集合,且在其上进行 Delete操作所移除的元素都是预先设定的。

在栈中,被删除的元素是最近插入的元素,它所实现的是后进先出策略(last-in, first-out, LIFO);

在队列中,被删除元素总是在集合中存在时间最长的那个元素,也就是说它所实现的是先进先出策略(first-in, first-out, FIFO);

算法之汉诺塔

汉诺塔实质上是一个数学问题,但是在编程上也是十分出名的。

规则

有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:

  1. 每次只能移动一个圆盘;
  2. 大盘不能叠在小盘上面。

提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须遵循上述两条规则。

|