1. 커서(cursor)로 연결 리스트 만들기
연결 리스트는 '노드의 삽입, 삭제를 데이터 이동 없이 수행한다'라는 특징이 있었지만 삽입, 삭제를 할때마다 노드용 객체를 메모리 영역을 만들고 해체하는 과정이 필요했습니다. 이 과정에 소모되는 비용은 결코 무시할수 없습니다. 그러므로 데이터 수가 크게 바뀌지 않고 데이터 수의 최대값을 미리 알수 있다면 아래와 같이 효율적인 연결 리스트를 운용할수 있습니다.
프리 리스트)
이 프로그램에서 삭제한 여러 레코드를 관리하기 위해 사용하는 것이 그 순서를 넣어두는 연결 리스트인 프리 리스트(free list)입니다.
- 프리 리스트 + 커서 연결리스트 코드
- AryLinkedList :
- AryLinkedListTester :
2. 원형 이중 연결 리스트
- 더미노드 : 이 노드는 노드의 삽입과 삭제 처리를 원활하게 하도록 리스트의 머리에 계속 존재하는 더미 노드입니다.
노드를 생성할 때 new Node<E>()에 의해 생성자를 호출하므로 더미 노드의 prev와 next는 자기 자신의 노들르 가리키도록 초기화됩니다.
- 코드
- DblLinkedList :
- DblLinkedListTester :
반응형
'WEB > 자료구조' 카테고리의 다른 글
해시법(체인법, 오픈주소법) (0) | 2019.03.15 |
---|---|
트리 / 이진트리 / 완전이진트리 / 이진검색트리 (0) | 2019.03.13 |
선형리스트란? / 포인터로 연결 리스트 만들기 (0) | 2019.03.11 |
브루트-포스법 / KMP법/ Boyer-Moore법 (0) | 2019.03.07 |
힙정렬 / 도수정렬 (0) | 2019.03.06 |