Python数据结构之图的应用示例

 更新时间:2018年05月11日 09:41:47   作者:chengqiuming  
这篇文章主要介绍了Python数据结构之图的应用,结合实例形式分析了Python数据结构中图的定义与遍历算法相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python数据结构之图的应用。分享给大家供大家参考,具体如下:

一、图的结构

二、代码

# -*- coding:utf-8 -*-
#! python3
def searchGraph(graph,start,end):
  results =[]
  generatePath(graph,[start],end,results)
  results.sort(key =lambda x:len(x))
  return results
def generatePath(graph,path,end,results):
  state = path[-1]
  if state == end:
    results.append(path)
  else:
    for arc in graph[state]:
      if arc not in path:
        generatePath(graph,path +[arc],end ,results)
if __name__ =='__main__':
  Graph={'A':['B','C','D'],
  'B':['E'],
  'C':['D','F'],
  'D':['B','E','G'],
  'E':[],
  'F':['D','G'],
  'G':['E']}
  r = searchGraph(Graph,'A','E')
  print("******************")
  print(' path A to E')
  print("******************")
  for i in r:
    print(i)

三、运行结果

******************
  path A to E
******************
['A', 'B', 'E']
['A', 'D', 'E']
['A', 'C', 'D', 'E']
['A', 'D', 'B', 'E']
['A', 'D', 'G', 'E']
['A', 'C', 'D', 'B', 'E']
['A', 'C', 'D', 'G', 'E']
['A', 'C', 'F', 'D', 'E']
['A', 'C', 'F', 'G', 'E']
['A', 'C', 'F', 'D', 'B', 'E']
['A', 'C', 'F', 'D', 'G', 'E']

运行效果图如下:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 利用python list完成最简单的DB连接池方法

    利用python list完成最简单的DB连接池方法

    这篇文章主要介绍了利用python list完成最简单的DB连接池方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 用python绘制极坐标雷达图

    用python绘制极坐标雷达图

    大家好,本篇文章主要讲的是用python绘制极坐标雷达图,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • python获取一组汉字拼音首字母的方法

    python获取一组汉字拼音首字母的方法

    这篇文章主要介绍了python获取一组汉字拼音首字母的方法,涉及Python针对汉字操作的相关技巧,需要的朋友可以参考下
    2015-07-07
  • python并发编程多进程 模拟抢票实现过程

    python并发编程多进程 模拟抢票实现过程

    这篇文章主要介绍了python并发编程多进程 模拟抢票实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python多行输入程序实例代码及扩展

    Python多行输入程序实例代码及扩展

    我们都知道Python内置方法input只能输入一行内容,我们今天来实现输入多行文本功能,这篇文章主要给大家介绍了关于Python多行输入程序的相关资料,需要的朋友可以参考下
    2022-04-04
  • 详解pandas绘制矩阵散点图(scatter_matrix)的方法

    详解pandas绘制矩阵散点图(scatter_matrix)的方法

    这篇文章主要介绍了详解pandas绘制矩阵散点图(scatter_matrix)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Anaconda安装以及修改环境默认位置图文教程

    Anaconda安装以及修改环境默认位置图文教程

    Anaconda是一个用于科学计算的Python发行版,支持Linux,Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包,下面这篇文章主要给大家介绍了关于Anaconda安装以及修改环境默认位置的相关资料,需要的朋友可以参考下
    2023-04-04
  • Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】

    Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】

    这篇文章主要介绍了Python数据结构与算法之链表定义与用法,结合具体实例形式较为详细的分析了单链表、循环链表等的定义、使用方法与相关注意事项,需要的朋友可以参考下
    2017-09-09
  • Python3.5装饰器典型案例分析

    Python3.5装饰器典型案例分析

    这篇文章主要介绍了Python3.5装饰器,结合实例形式分析了装饰器修饰有参数函数、装饰器修饰函数参数等情况相关使用技巧,需要的朋友可以参考下
    2019-04-04
  • python MultipartEncoder传输zip文件实例

    python MultipartEncoder传输zip文件实例

    这篇文章主要介绍了python MultipartEncoder传输zip文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论