[알고리즘 자료구조] 연결 리스트 (Linked List) 1. 연결 리스트란?
안녕하세요
이번에는 자료구조중 하나인 리스트를 포스팅 해보도록 하겠습니다.
일단 리스트에 대해서 알아보기 전, 자료구조라는 것을 대략적으로 설명해드리도록 하겠습니다.
데이터와 데이터를 체계적으로 구조화 한 것이라고 설명할수 있는데요.
예를들어 순차적으로 데이터를 구조화시킨다면 리스트라 하는것이고 데이터를 쌓듯이 구조화 시키면 스택이라 부르는 것입니
다.
그럼 그 연결 리스트란 무엇이냐
연결 리스트는 노드(node)와 링크(link)를 구조화 시킨 것을 의미합니다.
여기서 노드(node)는 데이터를 담고있는 그릇이라 생각하시면 되고
링크(link)는 리스트의 순서를 유지할 수 있게 해주는 연결고리라 생각하시면 됩니다.
자 그럼 여기서 생각나는 하나의 의문점이 있는데요
연결 리스트와 배열의 차이점이 대체 무엇이냐는 것이죠
연결 리스트와 배열의 공통점은 순차적으로 데이터를 저장하는 것인데
그럼 차이점은 대체 무엇일까요?
그 차이점은 배열은 배열을 선언할 때 데이터를 저장할 공간을 미리 저장해야하지만
리스트는 계속계속 동적으로 줄였다 늘였다 할 수 있습니다.
그렇기 때문에 배열은 사용하다 실수로 잉여 메모리가 생긴다면 잉여 메모리를 낭비할 수밖에 없게되지만
리스트는 잉여 메모리가 생기지 않고 필요할 때 마다 줄였다 늘였다 하므로 잉여 메모리가 발생하지 않아 절약적으로 사용 가능합니다.
다음 포스팅은 리스트의 한 종류인 단순 연결 리스트(Simple Linked List)의 구조를 살펴보도록 하겠습니다.
글이 도움이 되셧다면 버튼 한번 누르시고 덧글 남겨주세요. ^^