저장되는 자료의 전후관계가 1:1 (리스트, 스택, 큐 등)
오늘은 Array 와 Linked List 에 대해서 공부했다. 두가지 다 Linear Data Structure 에 속한다.
데이터 항목 사이의 관계가 1:n 또는 n:m (트리, 그래프 등). 앞에 저장된 데이터 한 개에 여러 개의 데이터가 뻗어나갈 수 있는 구조로 되어있다.
연속된 같은 크기의 공간에 데이터를 저장한다. 나는 Array를 하나의 길다란 박스가 정해진 크기대로 방처럼 쪼개져있는 형태라고 이해했다. 방의 크기를 정확히 알기 때문에 인덱스도 알 수 있고, 정보를 빠르게 찾을 수 있다.
하지만 새로운 정보를 중간에 삽입하고 싶다면 인덱스 뒷번호인 데이터를 다 밀어줘야하고, 그래서 데이터를 수정하려고하면 오래 걸린다.
장점 (Pros)
단점 (Cons)
하나의 줄로 데이터가 쭉 연결된 형태를 가지고 있고, 주소를 알아야 다른 것을 찾을 수 있다. 다음 데이터를 가르키는 pointer 를 통해서 연결되어 있다. 순서에 따라서 연결되어 있기 때문에 배열과는 다르게 빈 엘리먼트는 허용하지 않는다. 연결해서 포인터가 가르치는 주소를 타고타고 계속 가야 마지막 것을 찾을 수 있기 때문에 조회가 오래걸린다. 간혹 중간에 링크를 잃어버리는 경우에 뒤 쪽을 불러 올 수 없게 되어 쓸모없이 메모리만 차지하고 있는경우가 생길 수 있다.
장점 (Pros)
단점 (Cons)