본문 바로가기

프로그래밍/기본기ㆍ자료구조

List (리스트)

728x90
반응형

 

개념

- 자료구조를 공부할때 배열과 마찬가지로 가장 기본적인 자료형

- 비슷한 특성을 가진 자료들을 연결 해놓은 것

- 중복된 데이터를 허용하며 데이터를 나란히 저장하는 자료구조.

- 순차리스트와 연결리스트로 나뉨

연결 리스트

- 싱글 링크드 리스트, 더블 링크드 리스트 등이 있다.

- 저장 공간의 불연속성

[data] -> [data] -> [data] -> [data] -> [data] - (자료의 주소 값으로 서로 연결되어 있다.)

싱글 링크드 리스트

- 배열과 달리 동적할당 기반으로 효율적인 삽입/삭제가 가능하다.

- 다음 노드의 포인터를 갖고 포인터를 통하여 접근한다.

더블 링크드 리스트

- 싱글 링크드 리스트는 다음 노드만 알지만 더블 링크드 리스트는 이전 노드의 포인터도 갖고 있다.

- 이전 노드를 알 수 있는 장점이 있지만, 그만큼 정보를 가져야 하기 때문에 싱글 링크드 리스트보다 크다.

순차 리스트

- 배열의 특징을 갖고 있다.

- 저장 공간의 연속성

[data1][data2][data3][data4][data5] - (인덱스 0부터 4까지)

- 자세한것은 링크 참조

 

ArrayList (배열리스트)

개념 - Object클래스를 데이터로 받는 자료형 - Object클래스를 데이터로 받기 때문에 사용 할 때마다 캐스팅을 해야함 (캐스팅을 자주 하는 것은 성능 저하에 한몫 함 ) - Array처럼 Index를 가지고 있고 List처..

chipmunk-plump-plump.tistory.com

* 개념적으로 '리스트' 라는건 순차,연결 리스트의 형태로 만들어 놓은 자료구조들을 일컫는 말이다. 싱글 링크드 리스트, 더블 링크드 리스트, 배열리스트 모두 리스트 구조로 만들어진 자료구조이기에 '리스트 = 모든 리스트 자료구조들'로 이해하면 된다.

* 참고로 C#에서 주로 사용되는 List<T>는 ArrayList에 속한다.... 충격...

 

다람쥐와 포동포동이

 

반응형

'프로그래밍 > 기본기ㆍ자료구조' 카테고리의 다른 글

Array와 ArrayList의 차이  (0) 2020.04.09
ArrayList (배열리스트)  (0) 2020.04.09
Override (오버라이드)  (0) 2020.04.08
Array (배열)  (0) 2020.04.06
파일구조  (0) 2020.04.06