내 코드입니다 :: 파이썬 발생률 행렬 - 버텍스를 제거하는 방법? 여기
class incidenceMatrix:
def __init__(self, vertexNumber):
self.matrix = []
for k in range(0, vertexNumber):
self.matrix += [[]]
#print self.matrix
def showGraph(self):
i = 1
for row in self.matrix:
print i, row
i += 1
def isEdge(self, v1, v2):
i = 1
for row in self.matrix:
if i == v1:
r1 = row
if i == v2:
r2 = row
i += 1
print r1, r2
for x in range(len(r1)):
if r1[x] == r2[x] and r1[x] + r2[x] > 0:
return True
return False
def addEdge(self, v1, v2):
i = 1
for row in self.matrix:
if i == v1:
row.append(1)
elif i == v2:
row.append(1)
else:
row.append(0)
i += 1
def removeEdge(self, v1, v2):
i = 1
for row in self.matrix:
if i == v1:
r1 = row
if i == v2:
r2 = row
i += 1
for x in range(len(r1)):
if r1[x] == r2[x] and r1[x] + r2[x] > 0:
col = x
r1[x] = 0
r2[x] = 0
for row in self.matrix:
if i == v1:
row = r1
if i == v2:
row = r2
i += 1
for row in self.matrix:
row[col] = 'X'
row.remove('X')
def removeVertex(self, id):
pass
if __name__ == '__main__':
GrafIM = incidenceMatrix(5) #verticesNumber
GrafIM.addEdge(2,3)
GrafIM.addEdge(1,3)
GrafIM.addEdge(2,1)
GrafIM.addEdge(5,2)
print GrafIM.isEdge(2,4)
GrafIM.showGraph()
print "-------"
GrafIM.removeEdge(2,5)
GrafIM.showGraph()
이 내가 몇 가지 질문이 발생 매트릭스 입니다 :
1) 어떻게 정점을 제거하기를 - 방법을?
2) 파이썬 스타일로 코드를 만드는 방법은? 질문 3 참조)
3) 메서드에서 "i"증분을 사용합니까? 아마도 이것은 쓸만한 것이 될 수 있지만 어떻게 될까요?
편집 :
이제 버텍스를 삭제하는 방법을 보았습니다. 이 정점 1.
이 wher 난 그냥 열을 제거했지만 전체 시간은 2와 3은 카운터를 증가시키는 대신 enumerate
를 사용하는 것입니다 귀하의 질문에 코드 품질