그래프 자료구조 구현에대해 질문 좀 드립니다.
쌍둥이자리
질문 제목 : 그래프 자료구조 구현에 대해 질문이 좀 있어서 올려봅니다.생략질문 내용 :요즘 자료구조를 배우고있는데요.최근 그래프 자료구조에대해 배웠습니다.
근데 코딩을해볼려고하니 한가지 막히는 부분이있어 올려봅니다.
다른게 아니라 제가 그래프 구현을 연결리스트를 통해 할려고하는데요. 책에서 구현 방법으로 제시된게 배열을 만들고
그 배열 메모리 공간마다연결리스트를 사용해 연결된 자료를 넣어서 그래프를 만든다는건데 말로만 설명하면 이해가 안가니 그림으로 보자면
a
b c
d
이렇게 있고 a-b,a-c,b-d,d-c이렇게 연결 된 그래프가 있다 가정하구요.
arr[]
[0]l l
[1]l l
[2]l l
[3]l l
이렇게 배열을 만듭니다.
그리고
arr[]
[0] l a l - b - c
[1] l b l- a - d
[2] l c l - a - d
[3] ld l - b - c
이런식으로 그래프를 표현한다느 건데요..
근데 각 배열에 들어있는 것들이 모두 연결리스트로 연결 시킨 후 최종적으로 배열 인덱스에 들어있는 노드와 연결을 한다는 건데... 연결리스트는 포인터를 이용해 연결하려는 노드에 주소를 가리키게해서 연결하는 자료구조입니다.
그렇기 때문에 연결을 위해 포인터가 가리키는 주소값을 바꿔버리면 가장 최근에 업데이트 된 주소만 가리키지 이전의 주소는 안가리키지 않습니까? 근데 저런 식으로 하면 분명히 [0]일 떄와 [1]일 때 가리키는게 달라서 뒤죽박죽이 될텐데 이걸 어떻게 해결해야할지 잘 모르겠습니다. 어떻게해야하나요??