File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed
Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change 1+ # -*- coding:utf-8 -*-
2+
3+
4+
5+ from collections import deque
6+ from graph import Undigraph
7+
8+ def find_vertex_by_degree (graph , s , degree ):
9+ if len (graph ) <= 1 :
10+ return []
11+ if degree == 0 :
12+ return [s ]
13+ d_vertices = []
14+ queue = deque ()
15+ prev = [- 1 ] * len (graph )
16+ visited = [False ] * len (graph )
17+ visited [s ] = True
18+ queue .append (s )
19+ while len (queue ) > 0 :
20+ sz = len (queue )
21+ for i in range (sz ):
22+ v = queue .popleft ()
23+ for adj_v in graph [v ]:
24+ if not visited [adj_v ]:
25+ prev [adj_v ] = v
26+ visited [adj_v ] = True
27+ queue .append (adj_v )
28+ degree -= 1
29+ if degree == 0 and len (queue ) != 0 :
30+ return queue
31+
32+
33+ if __name__ == '__main__' :
34+ g = Undigraph (8 )
35+ g .add_edge (0 , 1 )
36+ g .add_edge (0 , 3 )
37+ g .add_edge (1 , 2 )
38+ g .add_edge (1 , 4 )
39+ g .add_edge (2 , 5 )
40+ g .add_edge (3 , 4 )
41+ g .add_edge (4 , 5 )
42+ g .add_edge (4 , 6 )
43+ g .add_edge (5 , 7 )
44+ g .add_edge (6 , 7 )
45+ print (find_vertex_by_degree (g , 0 , 4 ))
You can’t perform that action at this time.
0 commit comments