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