Repository navigation
Expand file tree
/
Copy pathVertex.py
More file actions
50 lines (40 loc) · 1.77 KB
/
Copy pathVertex.py
File metadata and controls
50 lines (40 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
class Vertex:
def __init__(self, val):
self.Value = val
class SimpleGraph:
def __init__(self, size):
self.max_vertex = size
self.m_adjacency = [[0] * size for _ in range(size)]
self.vertex = [None] * size
def AddVertex(self, v):
for i in range(len(self.vertex)):
if self.vertex[i] == None:
self.vertex[i] = Vertex(v)
return
if self.vertex[i] != None:
continue
return
# здесь и далее, параметры v -- индекс вершины
# в списке vertex
def RemoveVertex(self, v):
self.vertex[v] = None # ваш код удаления вершины со всеми её рёбрами
for i in range(len(self.m_adjacency[v])):
if self.m_adjacency[v][i] != 0:
self.m_adjacency[v][i] = 0
for j in range(len(self.m_adjacency)):
if self.m_adjacency[j][v] == 1:
self.m_adjacency[j][v] = 0
return
def IsEdge(self, v1, v2):
if self.m_adjacency[v1][v2] == 1 and self.m_adjacency[v2][v1] == 1:
return True
else: # True если есть ребро между вершинами v1 и v2
return False
def AddEdge(self, v1, v2):# предусмотреть выход за диапазон списка
self.m_adjacency[v1][v2] = 1 # добавление ребра между вершинами v1 и v2
self.m_adjacency[v2][v1] = 1
return
def RemoveEdge(self, v1, v2):
self.m_adjacency[v1][v2] = 0 # удаление ребра между вершинами v1 и v2
self.m_adjacency[v2][v1] = 0
return