2. 개요
사용 할 때, 말아야 할 때
연결리스트의 종류
단일 연결 리스트
원형(환형) 연결 리스트
이중 연결 리스트
3.
일정한 순서를 가지는 데이터 요소들을 표현하는 방법 중의 하나
배열과 다르게 데이터 요소들의 논리적인 순서만 유지되고 기억 장소 내에서
는 각 데이터 요소들은 논리적인 순서와는 상관없는 임의의 위치를 가지도록
하는 자료 구조
연결리스트에서는 각 데이터 요소들이 기억 장소 내의 어떤 위치에 어떤 항목
이 있는지를 표시해 주어야 함. 이를 위해 데이터 요소에는 데이터 값, 위치 정
보도 저장해 주어야 함.
즉, 배열에서의 단점을 제거하면서 메모리를 효율적으로 사용하고 삽입과 삭
제 가 쉬워 처리 시간이 단축되나, 관리 유지에 부가적 비용이 듦.
4. 개요
사용 할 때, 말아야 할 때
연결리스트의 종류
단일 연결 리스트
원형(환형) 연결 리스트
이중 연결 리스트
5.
저장할 데이터 개수가 가변적 인 경우
배열은 설정된 크기를 넘어가면 데이터가 넘쳐서 실행 도중 프로그램 오류가 발생
배열에 설정된 크기가 변할 때마다 재 컴파일하는 것을 방지하려고 넉넉한 크기로 큰 배열을 만
든다면 메모리 낭비가 발생 혹은 재 할 당 시 뒤로 한칸씩 밀고 중간에 값을 넣게되므로 속도 저하
list를 사용하면 저장 공간의 크기가 자동으로 변하므로 유연하게 사용
배열은 랜덤 접근이 가능하나 list는 순차 접근만 가능
중간에 데이터 삽입이나 삭제가 자주 일어날 경우
데이터를 랜덤하게 접근하는 경우가 많지 않을 경우
6.
저장할 데이터 개수가 많으면서 검색을 자주 할 때
List는 검색 속도가 느림
map이나 set, hash_map 사용
아이템을 자주 사용하는 온라인 게임에서는 아이템 사용 시 아이템 정보에 빈번하게 접근하므로
성능을 위해 메모리 낭비를 감수하고 배열로 데이터를 저장해서 랜덤 접근을 사용.
7. 개요
사용 할 때, 말아야 할 때
연결리스트의 종류
단일 연결 리스트
원형(환형) 연결 리스트
이중 연결 리스트
8.
단일 연결리스트(singly linked list)
원형(환형) 연결리스트(circular linked list)
포인터를 이용해서 한 쪽 방향 으로만 연결되어 있는 구조
원형(환형)큐와 마찬가지로 마지막 노드에서 처음 노드로 연결하여 원형으로 된 구조
이중 연결리스트(doubly linked list)
한 쪽 방향으로만 연결 된 경우 반대 방향의 노드를 접근하기 어렵다는 단점을 보안, 양방향으로
포인터를 이용해서 연결한 구조
9. 개요
사용 할 때, 말아야 할 때
연결리스트의 종류
단일 연결 리스트
원형(환형) 연결 리스트
이중 연결 리스트
10.
구조가 간단하고, 기억 장소의 소모가 적은 반면에 역방향으로 리스트를 검색
할 수 없음
-> 노드를 삽입하거나 삭제하려면 별도의 포인터가 필요
위 단점을 해결하기 위해
이중 연결리스트(doubly linlked list)를 사용