리스트(List)는 자료구조 중 '양방향 연결 리스트(Doubly Linked List)'를 구현한 것이다.
그래서 리스트를 알려면 '연결 리스트'라는 자료구조의 이해가 꼭 필요하다. (자료구조 포스팅에 있다.(click))
연결 리스트에 대한 자세한 설명은 생략하겠다.
리스트 컨테이너는 IDequeContainer를 인터페이스로 가진다.
IContainer -> ILinearContainer -> IDequeContainer와 같은 상속 관계를 가진다.
고로 양방향에서 push, pop이 가능하다.
위 3개의 인터페이스에 있는 모든 추상 메서드를 구체화 해야하며,
리스트 고유 메서드도 몇개 추가된다.
List의 주요 메서들1) ACCESSORS
begin: 첫 번째 위치를 가리키는 반복자를 리턴한다.
end: 마지막 요소를 가리키는 반복자를 리턴한다.
rbgin: begin과 비슷한데 다른 점은 역 방향으로 첫 번째 요소를 리턴한다. 그리고 사용하는 반복자도 다르다.
rend: end와 비슷한데 다른 점은 역 방향으로 마지막 요소 다음을 가리킨다. 그리고 사용하는 반복자도 다르다.
push_front: 첫 번째 위치에 데이터를 추가한다.
pop_front: 첫 번째 위치의 데이터를 삭제한다.
push_back: 마지막 위치에 데이터를 추가한다.
pop_back: 마지막 위치의 데이터를 삭제한다.
front: 첫 번째 데이터의 값을 리턴한다.
back: 마지막 데이터의 값을 리턴한다.
push: 새로운 데이터를 끝에 삽입한다.(push_back과 비슷)
2) COMMON
clear: 저장하고 있는 모든 데이터를 삭제한다.
empty: 저장 데이터 유/무, 없으면 true를 리턴한다.
size: 저장하고 있는 데이터의 개수를 리턴한다.:
swap: 데이터를 교환한다.
3) ASSIGN
assign: 1. 지정된 개수만큼 특정 데이터로 채운다, 2. 반복자의 지정한 영역으로 데이터를 채운다.
4) INSERT
insert:: 1. 지정한 위치에 데이터를 삽입한다. 2. 지정된 위치에 지정된 개수만큼 데이터를 삽입한다. 3. 지정된 위체이 지정된 범위의 데이터를 삽입한다.
5) ERASE & REMOVE
erase: 1. 지정한 위치에 있는 데이터를 삭제한다. 2. 지정한 범위에 잇는 데이터들을 삭제한다.
sort: 데이터를 정렬한다.
알고리즘은 여기서 구현하지 않고 나중에 알고리즘 파트에서 구현해보도록 하겠다.
각설하고 한글 주석을 달은 소스를 살펴보겠다.
// dc에서 소스 생략
http://oppacoding.com/article/javascript/140



댓글 0