# 친구가 연락되는지 확인하기. 

class Graph():
    def __init__(self, size):
        self.SIZE = size
        self.graph = [[0 for _ in range(size)]for _ in range(size)]

GSize = 6
stack =[]
visitedAry = []

def findVertex(g, findVtx) :

    current = 0
    stack.append(current)
    visitedAry.append(current)

    while (len(stack) != 0) :
        next = None
        for vertex in range(gSize):
            if g.graph[current][vertex] != 0 :
                if vertex in visitedAry :
                    pass
                else : 
                    next = vertex
                    break

            if next != None: 
                current = next
                stack.append(current)
                visitedAry.append(current)
            else :
                current = stack.pop()

        if findVtx in visitedAry : 
            return True
        else: 
            return False

G1 = Graph(GSize)
nameAry = ['문별', '솔라', '휘인', '쯔위', '선미', '화사']
문별, 솔라, 휘인, 쯔위, 선미, 화사 = 0, 1, 2, 3, 4, 5

G1.graph[문별][솔라] = 1; G1.graph[문별][휘인] = 1
G1.graph[솔라][문별] = 1; G1.graph[솔라][쯔위] = 1
G1.graph[휘인][문별] = 1; G1.graph[휘인][쯔위] = 1
G1.graph[쯔위][솔라] = 1; G1.graph[쯔위][휘인] = 1; G1.graph[쯔위][선미] = 1
G1.graph[선미][쯔위] = 1;

if 화사 in visitedAry : 
    print('화사가 연락이 됨')
else : 
    print('화사가 연락이 안 됨 ㅜ')

 

'자료구조' 카테고리의 다른 글

그래프 구현_최소 신장트리 복습  (0) 2024.06.17
최소신장트리 만들기  (0) 2024.06.08
Deepest Leaves Sum  (0) 2024.06.01
이진트리(Binary Tree) 기본  (0) 2023.09.16
선형 리스트 - 기본  (0) 2023.09.08

+ Recent posts