一、栈 Stack
1、定义
栈是一种“后进先出(Last In First Out,LIFO)”的一种数据结构,有压栈出栈两种操作方式。
2、应用
对于某些递归算法,栈通常大有用处。有时,你需要 在递归时把临时数据加入到栈中,在回溯时(例如,在递归判断失败时)再删除该数据。栈是实现这类算法的一种直观方法。
二、队列 Queue
队列是一种“先进先出(First In First Out,FIFO)”的一种数据结构,有入队和出队两种操作方式。队列类似于栈,你不能随机地访问队列中的元素。
算法图解2、应用
队列常用于广度优先搜索或缓存的实现中。
例如在广度优先搜索中,我们使用队列来存储需要被处理的节点。每处理一个节点时,就把其相邻节点加入到队列的尾端。这使得我们可以按照发现节点的顺序处理各个节点。
网友评论