纯 c 不会。。。弄个 python 的,给你个思路
先初始化所有线段的点,求出最大点的序号和最小点的序号,根据序号构建出一个矩阵,矩阵大小是最大序号减最小序号加一,本例中最小序号是一,就忽略了
根据每个线段的点,更新矩阵中两个位置的值,分别是[a,b]和[b,a]
求出每行数字的和,及当前点的连接点数量
附 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]))))