- 연결 리스트2023년 09월 05일
- Lv. 34 라이츄
- 작성자
- 2023.09.05.:31
JS는 토이프로젝트 해야 하는데 뭐 또 생각나면 만들겠음... 솔직히 프론트엔드가 쓸 일은 없겠지만 알아서 나쁠거 없잖아요? 아무튼.
배열은 만들 때 메모리 공간의 연속된 공간을 할당받는다. 그리고 이 특징때문에 인덱싱(리스트[0] 이런 식으로 픽하는거)이 가능하다. 이 공간의 크기는 마치 포켓몬의 종족값 같아서 한 번 정해지면 바꿀 수가 없다. ...그럼 대체 첨삭은 어떻게 하는거임??? (동공지진) 그리고 배열에 뭘 넣을 때 공간 확보도 문제지만 배열에서 뭘 뺐을 때 남는 공간도 문제가 된다. 아니 이 공간을 뭐 어따쓸겨 걍 낭비하는거지...
아무튼... 연결 리스트는 이 충격과 공포의 사태를 막기 위해 노드들을 줄줄이 엮어서 배열로 만든다. 각 노드들은 데이터와 포인터로 이루어져 있는데, 데이터는 말 그대로 배열에 들어있는 데이터고 포인터는 다음 노드의 위치를 가리키는 일종의 표지판같은거다. 그러면 여기에 노드 몇 개를 끼워넣으려면? 그냥 포인터만 바꾸면 장땡이다. 삭제하거나 순서를 바꿀 때도 마찬가지.
대신 연결 리스트는 인덱싱이 불가능하고 일일이 노드를 찾아가는 삽질이 필요하다. 원래 인생은 일장일단, 등가교환이니라. 전에 리스트뷰 vs 그리드뷰 할 때도 그리드뷰의 단점을 리스트뷰가 커버하고, 리스트뷰의 단점을 그리드뷰가 커버했듯이 말이다.
'Coding > 코딩잡담' 카테고리의 다른 글
우분투 부팅디스크를 만들어보자 (0) 2024.03.10 오라클 클라우드 김서버씨 종료... (0) 2024.01.10 트랜잭션 (0) 2023.08.31 해시 테이블 (0) 2023.08.02 알고리즘과 시간복잡도 (0) 2023.07.04 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)