2012년 2월 23일 목요일

[C++][자료구조] 링크드 리스트(Linked List)

개념 같은건 책을 보면 나와있으니 구현시 실질적으로 중요한 것만 정리.


단일이든 양방향이든 리스트의 처음과 끝에 Head와 Tail 노드를 만든다(포인터가 아니라 실제 공간을 할당받은 노드).
이 두 노드는 데이터를 가지지 않고 처음과 끝을 가리키는 역할만 한다.
(구현시에는 리스트 클래스의 생성자와 소멸자에서 두 노드를 할당, 반환한다.)

이렇게 구현하였을때의 장점은 삽입/삭제 등 함수 내부에서 if 문으로 조건 체크를 해줘야할 빈도수가 현저히 줄어들어 구현이 훨씬 간단해 진다는 점.
사용시에도 조건체크를 하지 않으므로 실행 속도가 빠르다는 점.
단점은 두 개의 공간을 낭비한다는 것 뿐이다.


이것이야말로 일반 대학교재용 자료구조책에서는 절대 찾아 볼 수 없는 실용적인 방법론이라 말하지 아니하지 않을 수 없지 아니하지 않을 수 없는것이다ㅡ,.ㅡ






그리고 이건 햄스터의 슬픔(...응??)



댓글 없음:

댓글 쓰기