数据结构
堆栈和队列
堆
堆栈是后进先出数据结构。 想象一下一大堆砖头。 您已经承担了将这些砖块放在盒子中运输的任务。 那么,看看这个庞大的堆栈,我们是从堆栈的底部开始拉砖还是从顶部取砖? 常识将指示我们从顶部开始,而不是从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()) //四个
堆栈和队列的实际使用
在需要保留列表顺序或添加或删除项的顺序很重要的情况下,堆栈和队列可用作临时数据结构。