ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python实现图的结构

2022-02-05 10:33:20  阅读:176  来源: 互联网

标签:__ python graph self fro 实现 nodes 节点 结构


节点定义

# 图节点结构
class Node:
	def __init__(self, value):
		self.value = value   # 节点值
		self.come = 0 		 # 入度
		self.out = 0         # 出度
		self.nexts = []      # 邻居节点
		self.edges = []      # 在节点为from的情况下,边的集合

边定义

class Edges:
	def __init__(self, weight, from, to):
		self.weight = weight   # 边的权重
        self.fro = fro         # 边的from节点
        self.to = to           # 边的to节点

图结构

class Graph:
	def __init__(self):
		self.nodes = {}   # 图的所有节点集合  字典形式:{节点编号:节点}
		self.edges = []   # 图的边集合

图的实现

# 生成图结构
# matrix = [
#   [1,2,3],        ==>   里面分别代表权重, from节点, to节点
#   [...]
# ]
from Graph import Graph
from Node import Node
from Edge import Edge


def createGraph(matrix):
    graph = Graph()
    for edge in matrix:
        weight = edge[0]
        fro = edge[1]
        to = edge[2]
        if fro not in graph.nodes:
            graph.nodes[fro] = Node(fro)
        if to not in graph.nodes:
            graph.nodes[to] = Node(to)
        fromNode = graph.nodes[fro]
        toNode = graph.nodes[to]
        newEdge = Edge(weight, fromNode, toNode)
        fromNode.nexts.append(toNode)
        fromNode.out += 1
        toNode.come += 1
        fromNode.edges.append(newEdge)
        graph.edges.append(newEdge)
    return graph

原文:
https://www.cnblogs.com/icekx/p/915244a4.html

标签:__,python,graph,self,fro,实现,nodes,节点,结构
来源: https://blog.csdn.net/qq_41816189/article/details/122788370

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有