-
패스트캠퍼스 챌린지 02일차스터디플래너/패캠챌린지 2021. 11. 2. 21:02
[오늘 진도]
Part 1. 자료구조 이론
Ch 07. 자료구조(링크드리스트)
01. 은근히 어려운 자료 구조: 링크드 리스트
02. 은근히 어려운 자료 구조: 링크드 리스트 (2)
03. 다양한 링크드 리스트
04. 다양한 링크드 리스트 (2)
오늘은 링크드 리스트(Linked List)를 배웠다. 제목은 링크드 리스트라고 되어있지만 연결 리스트가 더 편해서 연결리스트(Linked List)라고 하겠다. 다른 자료 구조처럼 연결 리스트(Linked List)도 한 강의로 끝날 줄 알았는데 연결 리스트(Linked List)는 네 개나 있다. 중요하고도 어려운가보다 싶었는데 역시나 어려웠다.
연결리스트는 배열로 표현할 수 있었던 배열, 스택, 큐와 다르다. 노드는 데이터와 다음 데이터를 가리키는 포인터로 구성되어있다. 그래서 크기가 정해져 있는 배열, 스택과 다르게 크기에 제한 없이 추가할 수 있고, 제거도 편하다. 하지만 데이터와 다음 데이터를 가리키는 포인터로 구성되어 있기 때문에 자료 구조가 복잡하고, 복잡하니까 시간이 오래 걸린다는 단점이 있다. 연결 리스트는 다음 데이터를 가리키는 연결 리스트와 이전 데이터와 다음 데이터를 가리키는 더블 링크드 리스트가 있다. 싱글 링크드 리스트는 연결 리스트라 부르는 게 편하고 더블 링크드 리스트는 그대로 부르는 게 편하다.
아무튼 부스트코스에서 강의를 들을 때 이미 한 번 코드를 작성해봤지만, 그때 강의 속 교수님이 쓰는 걸 따라 쓰는 것과 내가 다시 생각해서 혼자 써보자니 어려웠다. 더블 링크드 리스트 얘는 진짜 미친놈이다. 쥬피터 노트북 파일에 타이핑해보고 그림을 그려봤는데 이해가 잘 안 가서 손으로 직접 써봤다. 손으로 쓰다 보니 조금은 이해가 갔다. 블로그에 글 올리고 한 번 더 써봐야겠다.
그나저나 이번 코드에서 궁금했던 건 연결 리스트 클래스 속 메소드에 head가 null일 때를 if 문으로 계속 조건을 달아놨던데 이걸 모든 메소드에 넣는다면 하나로 통일해서 못 쓰는 건가 싶었다.
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'스터디플래너 > 패캠챌린지' 카테고리의 다른 글
패스트캠퍼스 챌린지 05일차 (0) 2021.11.05 패스트캠퍼스 챌린지 04일차 (0) 2021.11.04 패스트캠퍼스 챌린지 03일차 (0) 2021.11.03 패스트캠퍼스 챌린지 01일차 (0) 2021.11.01 패스트캠퍼스 챌린지 -1일차 (0) 2021.10.30