반응형
SMALL

01. 리스트의 개념 

 

- '일정한 순서'의 나열 (배열은 물리적 순서 = 논리적 순서 동일)

- 어떤 정의에 의해서 결정된 '논리적 순서'의 나열

- 리스트의 '순서'는 데이터가 저장되는 물리적인 위치와 상관없이 사람들의 머릿속에

인식되는 '논리적인 순서', 혹은 리스트에 나타나는 원소들 간의 '의미적인 순서'를 의미함

- 물품이나 사람의 이름 따위를 일정한 순서로 적어 놓은 것

 

리스트의 의미

- 배열은 인덱스로 표현되는 '순서'가 배열 원소의 메모리 공간(주기억 장치, DDR0에서의

물리적인 위치를 의미함

- 하지만 리스트의 '순서' 개념은 어떤 정의에 의해서 결정된 '논리적인 순서'임

- 원소들의 물리적인 저장 순서나 위치와는 무관하게 원소들 간의 논리적인 순서만 유지

 

- 포인터를 이용한 리스트의 구현 방법 : 원소값을 저장하는 공간과 다음 원소를 가리키는

위치 정보를 저장하는 공간을 함께 구현하는 방법

- 배열을 이용한 리스트의 구현 방법

 

 

02. 배열을 이용한 리스트의 구현

- 구현해야 할 리스트를 3.1운동(1919년), 대한독립(1945년), 6.25전쟁(1950년), 

서울 올림픽(1988년)의 순서라고 정의한다면,

 

- 배열의 확장 : 초기 배열 선언에서 충분히 크게 하면 어느 정도는 배열의 추가 확장을

피할 수 있겠지만, 원소를 리스트의 중간에 삽입하기 위해서는 리스트의 원소값을 하나씩

뒤로 밀어야 하는 상황이 발생함

 

-  ‘배열로 구현된 리스트’는 원소의 순서가 연속적인 물리적 주소에 저장됨

 -> 원소를 삽입하거나 삭제하기 위해서는 해당 원소의 위치 뒤에 있는 모든 원소를

뒤로 물리거나 앞으로 당겨야만 됨

 -> 리스트 원소값의 이동은 원소수가 많을수록 프로그램의 수행시간을 증가시킴

 

 

배열을 이용한 리스트의 원소 삽입/삭제 시 발생하는 문제

- 리스트의 원소 삽입은 프로그램의 실행 중에 메모리 할당을 필요로 하는 경우도 발생시킴

- 배열을 이용한 리스트의 구현은 실제 IT서비스 환경에서는 자주 사용되지 않고 있음

- 자료의 삽입과 삭제가 빈번히 발생하는 상황에서 리스트를 배열로 구현하는 것은 빈번한

자료 이동으로 인한 비효율적인 컴퓨팅 성능을 유발함

 

 

 

 

반응형
LIST

'방송통신대학 > 자료구조' 카테고리의 다른 글

5-3. 연결 리스트에서노드의삽입과 삭제  (0) 2020.11.25
5-2. 포인터를 이용한 리스트의 구현  (0) 2020.11.24
배열을 이용한 큐queue 의 구현  (0) 2020.09.17
큐 Queue  (0) 2020.09.16
스택  (0) 2020.09.15

+ Recent posts