본문 바로가기

Basic/자료구조,알고리즘

배열과 리스트2

반응형

1. 배열(array)과 리스트의 성질

 

1) 배열의 가장 큰 특징은 인덱스 중요시 한다는 점이다. 

 

즉 인덱스를 값의 식별자로서 이용해 데이터를 조회를 한다는점이다. 하지만 인덱스를 이용

 

해 이터를 가져오려면 데이터에 대한 인덱의 값이 고정 되어야 한다. 그리고 어떤 엘리먼

 

트가 삭제되면 삭제된 상태를 빈 공간으로 남겨둬야 한다. 그래서 메모리의 낭비를 초래하고 

 

배열에 데이터가 있는지를 체크하는 로직이 필요하다.

 

2) 리스트는 저장된 순서를 중요하게 여긴다.

 

리스트도 내부적으로 인덱스를 가질 수는 있지만 식별자로서의 인덱스를 중요시하기보다, 빈

 

없는 데이터의 적재라는 점을 취한다. 즉 "데이터의 다음 데이터는 무엇이다" 라는 저장된 

 

순서를 중요하게 여기며, 데이터를 나란히(하나의 열로) 저장한다.

 

 

2. 데이터 삭제시 배열과 리스트의 차이점

 

아래와 같은 데이터에서 4번째 엘리먼트 40을 삭제하면

 

 

 

1) 배열

 

배열이라면 아래와 같이 40이 없어진 자리가 빈자리로 남아 있을 것이다. 

 

인덱스는 변하지 않고 고정된다. 즉 인덱스가 주민등록 번호처럼 변하지 않는 고유한 값으로 

 

남아있게 되는

 

 

 

2) 리스트

 

리스트라면 50의 인덱스 값은 4에서 3으로 변경되고 인덱스는 더 이상 고유 식별자로 사용할 

 

수 없다. 하지만 데이터 밀도를 촘촘하게 유지할 수 있게 된다.

 

 

 

3. 데이터 추가시 배열과 리스트의 차이점

 

위와 같은 데이터가 있다고 하자.

 

 

 

1) 배열의 경우

 

 배열에서 인덱스를 유지하면서 40의 자리에 50을 추가하면

 

 

40이 삭제되며 50으로 덮어 씌우게 된다. 이게 원했던 것이라면 상관없지만 

 

 

2) 리스트의 경우

 

30과 40의 사이에 50을 추가하려는 것이었다면 리스트를 사용해야 한다.

 

 

인덱스는 바뀌게 된다. 리스트에서는 인덱스가 중요하게 여기지 않는다

 

리스트 데이터 스트럭쳐의 핵심은 엘리먼트들 간의 순서이다.

 

리스트를 다른 말로는 시퀀스(sequence)라고도 부른다. 시퀀스는 순서라는 의미. 즉 순서가 있

 

는 데이터의 모임이 스트이다.

 

 

4. 리스트의 기능

 

- 리스트의 핵심적인 개념은 데이터의 순서가 있는 엘리먼트의 모임이다.

 

저장 형태는 데이터를 나란히(하나의 열로) 저장한다.

 

빈 엘리먼트는 허용되지 않는다

 

중복된 데이터를 허용한다는 것( 배열도 허용 나중에  set 과의 차이점을 보자 )이다.

 

- 처음, 끝, 중간에 엘리먼트를 추가/삭제하는 기능이 있다.

 

 

 

 

 

 

 

반응형

'Basic > 자료구조,알고리즘' 카테고리의 다른 글

Java의 ArrayList 사용법  (0) 2018.11.29
ArrayList(어레이 리스트)  (1) 2018.11.29
배열과 리스트1  (0) 2018.11.29
추상자료형  (0) 2018.11.28
하노이타워(재귀)  (0) 2018.11.28