![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
like_study_cat
这个作者很懒,什么都没留下…
展开
-
Dijkstra
Dijkstra(迪杰斯特拉算法) #Dijkstra(迪杰斯特拉算法) 带权无向图中寻求最短路径 #动态演示过程: https://www.bilibili.com/video/BV1q4411M7r9?from=search&seid=5585063956337033177 #实现的话用优先队列实现(出队的都是确认是到该点的最短路径) import heapq import math graph = { "A": {"B": 5, "C": 1}, "B": {"A":.原创 2020-09-06 12:59:41 · 178 阅读 · 0 评论 -
图的BFS算法和DFS算法
BFS(breadth first search)广度优先搜索,和二叉树广度优先搜索算法一样,一层一层的搜索,只不过得先找个起始点,如下图所示,比如起始点设为A,那就是A,B,C,D,E,F DFS,也是先找个起始点,然后一条路走到底,走到不能走为止,再往回看上一个点的其他路径,直到探索完所有的点。如下图所示,不如起始点设为A,那就是,A,B,D,F,E,C,当然走法有多种。 BFS可以用queue(先进先出)来实现。 DFS可以用栈来实现(后进先出)来实现。 BFS: graph = {原创 2020-09-05 15:47:08 · 329 阅读 · 0 评论 -
队列
队列 Queue 抽象数据类型Queue是先进先出的一种数据结构(先进先出,先到先服务) ,区别于栈(后进后出,后到后服务) 抽象数据类型有如下操作定义: Queue:创建一个空队列对象,返回值为Queue对象。 enqueue(item):入队操作,将item添加到队尾,无返回值。 dequeue():出队操作,从队首移除数据项,有返回值,返回值为队首数据项。 isEmpty():测试是否空队列...原创 2019-12-06 18:20:54 · 95 阅读 · 0 评论 -
栈
栈 栈(stack):后进先出 class Stack(object): def __init__(self): self.stack = [] def push(self,data): self.stack.append(data) def pop(self): return self.stack.pop() def...原创 2019-12-06 14:53:20 · 50 阅读 · 0 评论