求节点团的问题。已知一个图有9个节点,请找出这个图中所有的3节点团、4节点团和5节点团。

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

纯 c 不会。。。弄个 python 的,给你个思路

先初始化所有线段的点,求出最大点的序号和最小点的序号,根据序号构建出一个矩阵,矩阵大小是最大序号减最小序号加一,本例中最小序号是一,就忽略了

img

根据每个线段的点,更新矩阵中两个位置的值,分别是[a,b]和[b,a]

img

求出每行数字的和,及当前点的连接点数量

img

附 python 代码


a = [[2,3],[1,2],[7,5],[3,4]
     ,[4,6],[4,7],[1,3],[1,5],[5,6]
     ,[2,5],[6,7],[2,7],[3,5]
     ,[1,4],[8,1],[9,1],[8,9]
     ,[3,8],[7,1],[9,2],[8,2],[7,3]
     ]

b = []

for i in a:
    b += i

_max = max(b)
_min = min(b)

c = [[0 for n in range(_max)] for n in range(_max)]

print(c)

for i in a:
    c[i[0]-1][i[1]-1] = c[i[1]-1][i[0]-1] = 1

print(c)

for i in range(len(c)):
    print('节点{}有{}相邻节点'.format(i+1,int(sum(c[i]))))