자료구조 연결리스트 질문있습니다.
373
投稿した質問数 17

그림 못그려서 죄송합니다 ㅠ
그려가면서 이해하려고했는데, 결국 연결리스트가 추가되는 형식은
Room(LinkedListNode)이 담을 수 있는 data와 그리고 다음과 이전의 Room을 가르키는 참조변수 prev,next를 가지고있고
RoomList(LinkedList)는 AddLast가 호출될 때 Room객체를 생성하고 Head는 첫번째. Tail은 AddLast가 호출될때마다 생성되는 newRoom객체를 가르키면서 prev와 next를 계속 연결해주는 것이라고 이해하면될까요?
回答 3
1
(1),(2)는 말씀대로 삭제를 의도하는 코드가 아니라서
그냥 Head, Tail의 위치만 조정하는게 맞습니다만.
if else문이 아니라 if - if 인 것에 주의하세요!
처음/마지막 노드라서 (1), (2)에 걸렸다고 바로 return하는게 아니라,
이어서 (3), (4)도 실행되니 결국 삭제를 처리를 해주게 됩니다.
1
네 맞습니다!
물론 이는 일반적으로 제일 많이 사용되는 [양방향 연결리스트] 기준이고,
그냥 한쪽 방향으로 prev없이 next만 관리해
연결하는 [단방향 연결리스트]도 있습니다.
0
감사합니다.. 하나더 질문이있는데 연결리스트 RoomList의 Remove함수에서
public void Remove(Room<T> room)
{
if (Head == room)
{
Head = Head.Next; (1)
}
if (Tail == room)
{
Tail = Tail.Prev; (2)
}
if (room.Prev != null)
(room.Prev).Next = room.Next; (3)
if (room.Next != null)
(room.Next).Prev = room.Prev; (4)
(3),(4)는 직관적으로 Head와 Tail이 가르키는 부분이아닌 중간사이에있는 노드객체가 예로들어
103번을 지운다고하면 (103번방의 이전 102번방).Next는 104번방을 가르키게해 103번방을 가르키는놈이없어 노드객체가 사라지는건 알겠는데.
(1),(2)번은 100번을 넣을때(Head) Head에 Head의 Next가 가르키는 101번을 넣어서 새로 101번을 가르키게 한다해도 101번 노드객체의 Prev는 100번을 가르키니 100번은 안사라지는게 맞지않나요?
게임개발에서 주로 어느부분에 알고리즘들이 쓰이는지 궁금합니다
0
170
2
글꼴 바꿔도 자간이 좁아 찌그러져보이시는 분들
0
87
1
NullReferenceException 예외) 같은 실수하시는분 계실까봐 남겨요
0
66
1
parent를 Pos타입으로 만든 이유
0
74
1
콘솔창에 격자가 안나옴 미로 생성 X
0
133
1
격자 생성 안됨 무한루프
0
113
1
BFS 질문
0
143
2
격자 무한 출력
0
166
2
A* 의 PriorityQueue 관련 질문입니다
0
155
2
vscode에서 원그리기
0
179
1
환결설정 강의 원 그리기
0
122
1
15-17분
0
86
1
3:16초에 근데 이렇게 해가지고 부분에 "{}"를 만들어서 자식 node들을 생성하던데 왜 중괄호로 감싸게 만드는 건가요?
0
141
2
동적 배열 관련 질문입니다!
0
209
1
Big-o 표기법에서 시간 복잡도
0
167
1
7:40에서 언급하신 색상이 날아가는 문제 이해를 못하겠습니다
0
151
1
트리구현연습 강의 질문있어요
0
142
1
창은 뜨는데 맵이 나타나지 않아요.
0
174
1
Ctrl F5 하면 나오는 창은 어디서 설정할까요??
0
271
1
void CalcPathFromParent(Pos[,] parent)에 대해서
0
202
2
NullReferenceException예외가 발생했을때 어떻게 해야하나요?
0
228
1
[해결] 환경설정 강의에서 원이 이상하게 그려지는 문제
3
308
2
오른손 법칙에서 플레이어 점이 안 움직입니다
0
243
2
맵 만들기 오류
0
178
1

