其他分享
首页 > 其他分享> > 堆栈与深度优先搜索基础知识

堆栈与深度优先搜索基础知识

作者:互联网

堆栈

堆栈(Stack):简称为栈。一种线性表数据结构,是一种只允许在表的一端进行插入和删除操作的线性表。

栈有两种存储表示方法:「顺序栈」「链式栈」

栈作为一种线性表来说,理论上应该具备线性表所有的操作特性,但由于「后进先出」的特殊性,所以针对栈的操作进行了一些变化。尤其是插入操作和删除操作,改为了入栈(push)和出栈(pop)。

堆栈的基本操作如下:

深度优先搜索基础

深度优先搜索算法**(Depth First Search):英文缩写为 DFS。是一种用于遍历或搜索树或图的算法。该算法沿着树的深度遍历树的节点,会尽可能深的搜索树的分支。当节点 v 的所在边都己被探寻过,搜索将回溯到发现节点 v 的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。

深度优先搜索使用的是回溯思想,这种思想很适合使用「递归」来实现。而递归对问题的处理顺序,遵循了「后进先出」的规律。所以递归问题的处理,需要借助「堆栈」来实现。

参考源:gitee.com-leetcode-py项目

标签:优先,线性表,top,元素,栈顶,基础知识,堆栈,节点
来源: https://www.cnblogs.com/Lusai/p/16701234.html