数据结构之深度优先,广度优先遍历
2015-04-27 19:56
519 查看
深度优先和广度优先遍历在树和图中应用最为普遍,思想也类似,因此放到一起来总结。
数据结构定义如下:
先根遍历
后根遍历与中根遍历类似,就不写了,用的都是深度优先遍历
层序遍历,用的是广度优先遍历,需要额外一个队列作为临时变量保存每层的节点
图的深度优先广度优先遍历:
图常用的存储方式包括邻接矩阵,邻接表等,这里以邻接矩阵为例
二叉树的深度优先广度优先遍历:
一棵二叉树(2,(2(3,4),3(4,5))),这是一棵满二叉树,一共有7个节点,根节点2,深度为3数据结构定义如下:
class Node: def __init__(self, value=None, left = None, right = None): self.value = value self.left = left self.right = right
先根遍历
def preTraverse(tree): if(tree): print tree.value preTraverse(tree.left) preTraverse(tree.right)
后根遍历与中根遍历类似,就不写了,用的都是深度优先遍历
层序遍历,用的是广度优先遍历,需要额外一个队列作为临时变量保存每层的节点
def hiraTraverse(tree, queue_node): if len(queue_node)==0 & (tree is None): queue_node.append(tree) while len(queue_node)>0: node = queue_node.pop(0) print node.value if not node.left is None: queue_node.append(node.left) if not node.right is None: queue_node.append(node.right)
图的深度优先广度优先遍历:
图常用的存储方式包括邻接矩阵,邻接表等,这里以邻接矩阵为例
相关文章推荐
- 数据结构:图的遍历--深度优先、广度优先
- 【数据结构实验】图的深度优先/广度优先遍历
- 数据结构:图的遍历--深度优先、广度优先
- 对树形结构数据进行广度优先/深度优先遍历
- 数据结构——图的深度/广度优先遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- sdut 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- [SDUT](2141)数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历 ---BFS(图)
- 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
- 【数据结构】图Graph的邻接矩阵,邻接表及深度、广度遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 图:存储结构、深度优先遍历以及广度优先遍历
- SDUT 2141 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构图的数组表示法以及深度,广度遍历
- 数据结构之 图论---基于邻接矩阵的广度优先搜索遍历(输出bfs遍历序列)
- sdutacm-数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
- C语言以邻接矩阵为存储结构的图的构造以及广度优先,深度优先遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
- SDUT 2141 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历