欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
全部教程·
Python语言·
Python数据结构
[目录]
·
Python 回溯
Python 数据结构
Python 简介
Python 环境
Python 数组
Python 列表
Python 元组
Python 词典
Python 二维数组
Python 矩阵
Python 集合
Python 节点
Python 链表
Python 栈
Python 队列
Python Deque
Python 高级链表
Python 哈希表
Python 二叉树
Python 搜索树
Python 堆
Python 图形
Python 算法设计
Python 算法分析
Python 分而治之
Python 递归
Python 回溯
Python 树遍历算法
Python 排序算法
Python 搜索算法
Python 图算法
Python 大O符号
Python 算法类
Python 摊销分析
Python 算法理由
Python 数据结构
Python 简介
Python 环境
Python 数组
Python 列表
Python 元组
Python 词典
Python 二维数组
Python 矩阵
Python 集合
Python 节点
Python 链表
Python 栈
Python 队列
Python Deque
Python 高级链表
Python 哈希表
Python 二叉树
Python 搜索树
Python 堆
Python 图形
Python 算法设计
Python 算法分析
Python 分而治之
Python 递归
Python 回溯
Python 树遍历算法
Python 排序算法
Python 搜索算法
Python 图算法
Python 大O符号
Python 算法类
Python 摊销分析
Python 算法理由
Python 回溯
回溯是递归的一种形式。但它涉及选择任何可能性的唯一选择。我们首先选择一个选项并从中退出,如果我们达到了一个状态,那么我们可以得出结论:这个特定的选项不能提供所需的解决方案。我们通过遍历每个可用选项来重复这些步骤,直到获得所需的解决方案。
以下是查找给定字母集合的所有可能排列顺序的示例。当我们选择一对时,我们应用回溯来验证是否已经创建了该确切的一对。如果尚未创建,则将该对添加到答案列表中,否则将被忽略。
def permute(list, s):
if list == 1:
return s
else:
return [ y + x
for y in permute(1, s)
for x in permute(list - 1, s)
]
print(permute(1, ["a","b","c"]))
print(permute(2, ["a","b","c"]))
当上面的代码被执行时,它会产生以下结果 -
['a', 'b', 'c'] ['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']
下一章:Python 树遍历算法
遍历是访问树的所有节点的过程,也可以打印它们的值。因为所有节点都通过边(链接)连接,所以我们始终从根(头)节点开始。也就是说,我们不能随机访问树中的一个节点。我们用三种方式来遍历一棵树按顺序遍历预购遍历后序遍历&n ...
AI 中文社