74.2 노드추가코드 질문입니다.
, 김 민석님이 작성newNode->next = target->next;이 코드가 무엇을 의미하는 것인지 이해가 잘 가지 않습니다.
노드와 노드 사이에 들어가야 하기 때문에 새 코드의 다음 노드를 기존 노드의 다음 노드에 연결시킨 뒤
target->next = newNode;기존 노드를 새 노드에 연결 시키는 것인가요??
글로 표현하기 어려워 그림으로 그렸습니다.
Re: 74.2 노드추가코드 질문입니다.
, 도장_ 관리자님이 작성직접 그린 그림이나 그림 74-5나 같은 건데요.
그림 74-5에서 직접 그린 그림은 중간에 한 단계를 추가한 것이고,
before/after는 동일합니다.
잘 이해하고 있는 것 같은데요.
완벽하게 이해하는 법은
예제 실습하고,
프로젝트 새로 만들어서 그림 74-5만 보고 다시 코딩하는 겁니다.
잘 안 되면 예제 코드 슬쩍 보시고요.
10번, 20번, 반복하면 됩니다.
알고리즘 테스트 준비하는 분들은
매일 삽입정렬, 퀵정렬 코드 작성합니다. 10분이면 다 작성할 정도로 코드를 아예 다 외워버리죠.
완벽한 이해는 자전거 타기와 비슷합니다.
학습자 중에는 난 꼭 이 원리를 이해해야겠어 라는 유형이 있는데,
불행히도 프로그래밍은 반복해서 실습하면서 익히는 게 더 유리한 내용이 많습니다.
자전거 타기는 넘어지면서 페달을 밟으면 쓰러지지 않는다는 것을 학습하는 게 더 빠릅니다.
자전거를 타기 위해
자이로 효과, 회전관성, 캐스터각, 캠버 스러스트 원리를 배울 필요는 없습니다.
자전거를 탈 수 있는 원리이기도 하죠.
넘어지지 않고 페달만 밟을 수 있으면 자전거는 정복한 겁니다. 원리로 가려면 철광석 광산 가서 철광석부터 캐야 합니다.
3만원짜리 토스터를 철광석부터 캐서 만들려고 시도한 사람이 있습니다.
책 <토스터 프로젝트>를 보시면 됩니다. 결론은 이 토스터의 가격은 200만원인데 빵은 못 굽습니다.
연결 리스트도 반복에 반복해서 익숙해지면 됩니다.
코드 작성에 익숙해지면 원리도 자연히 이해됩니다.