![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
。。。
程序员阿伟
热爱编程,编程可以改变生活
专注大数据领域
前后端略有涉及
喜欢分享好玩有趣的小项目
个人座右铭:编程之路没有尽头,永远保持自己的热爱
展开
-
使用python实现简单的深度优先搜索,通俗易懂
图的深度优先搜索1.利用栈实现2.从源节点开始把节点按照深度放入栈,然后弹出3.每弹出一个点,把该节点下一个没有进过栈的邻接点放入栈4.直到栈变空代码# 定义节点class Node: def __init__(self,value=None,connect=[]): self.value=value self.connect=connect # 节点连接的其他节点集合 def set原创 2021-09-28 23:50:01 · 4989 阅读 · 0 评论 -
使用python简单地实现广度优先搜索,通俗易懂
图的广度优先遍历1.利用队列实现2.从源节点开始依次按照宽度进队列,然后弹出3.每弹出一个节点,就把该节点所有没有进过队列的邻接点放入队列4.直到队列变空代码# 定义节点class Node: def __init__(self,value=None,connect=[]): self.value=value self.connect=connect def setValue(self,v原创 2021-09-28 23:42:19 · 758 阅读 · 0 评论 -
用问题归约法思想解决梵塔问题(python递归实现)
梵塔规则有a、b、c三个柱子,a从上到下,从小到大有n个盘子。要求把a上所有盘子移动到c,一次只能移动一个盘子,且大盘子不能放小盘子上分析梵塔解决过程(1)将最上面的n-1个圆盘从a移动到b(2)将初始位的最底下的一个圆盘移动到c(3)将b的n-1个圆盘移动到c例如当移动两个盘子的时候,得需要三步才能完成。例如:把a上的两个盘子移动到c 第一步:先把a上的1个移动到b 第一步:再把a...原创 2021-09-23 23:43:02 · 5420 阅读 · 1 评论 -
使用python实现猴子摘香蕉问题
如何实现猴子摘香蕉问题,只需要几点即可1.猴子与箱子的位置关系2.箱子与香蕉的位置关系3.猴子有无摘到香蕉猴子摘到香蕉的前提条件1.猴子与箱子在一起2.箱子与香蕉在一起3.猴子在箱子上面4.猴子没有摘到香蕉猴子可能存在的几种位置状态1.箱子和猴子不在一起2.猴子跟箱子在一起且不跟香蕉在一起3.猴子不在箱子上并且猴子跟箱子在一起4.猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉5.猴子在箱子上但箱子不跟香蕉在一起6.猴子取到香蕉根据上述开始原创 2021-09-22 19:51:17 · 9592 阅读 · 0 评论