数据结构

堆栈和队列

堆栈是后进先出数据结构。 想象一下一大堆砖头。 您已经承担了将这些砖块放在盒子中运输的任务。 那么,看看这个庞大的堆栈,我们是从堆栈的底部开始拉砖还是从顶部取砖? 常识将指示我们从顶部开始,而不是从10,000磅的Jenga游戏开始。 这很像堆栈在这里的工作方式。 放置在LIFO数据结构中的最后一个元素是从中检索的第一个元素。

尽管堆栈可能从表面上看起来像数组,但元素的顺序支撑了功能。 因此,在创建堆栈时,必须限制访问堆栈中元素的方式。

队列

队列是先进先出列表数据结构。 先进先出数据结构意味着元素只能在后面插入,并在前面出队。 队列在现实世界中最好用购买电影票的线来表示。 在售票热线中,第一个排队的人首先要购买门票,排队的每个人都按照加入队伍的顺序购买门票。 像使用Stacks一样,从队列中删除数据的顺序对于其能否正常运行至关重要,因此确保对队列数据的访问进行适当管理至关重要。

  var queue = Queue () 
  queue.isEmpty // true 
  queue.push(值:“一个”) 
  print(queue.count) // 1 
  queue.push(值:“两个”) 
  print(queue.count) // 2 
  queue.push(值:“三”) 
  print(queue.count) // 3 
  queue.push(值:“四个”) 
  print(queue.count) // 4 
  queue.isEmpty //  
  print(queue.pop()) //一个 
  print(queue.pop()) //两个 
  print(queue.pop()) //三个 
  print(queue.pop()) //四个 

堆栈和队列的实际使用

在需要保留列表顺序或添加或删除项的顺序很重要的情况下,堆栈和队列可用作临时数据结构。