


연결 리스트가 필요로 하는 두 가지 연산
- 데이타 필드와 하나의 링크 필드를 가진 하나의 공백 노드 를 획득하는 방법
- 사용하지 않는 노드는 다시 반납하여 재사용하는 방법
자유 공간 리스트 (free space list) 가 있는 경우
- getNode()
- 데이타와 링크 필드로 되어 있는 새로운 공백 노드를 가용 공간 리스트로부터 할당받아 그 주소를 반환하는 함수- returnNode()
- 포인터 변수 P가 지시하는 노드를 가용 공간 리스트에 반 환하는 함수
- 프로그래밍 언어에 따라 필요한 경우도 있고 필요하지 않은 경우도 있음
- Java와 같이 사용하지 못하는 노드를 자동으로 관리해 주 는 언어에서도 사용자가 직접 관리할 필요가 있는 경우도 있음
앞의 두 함수를 사용한 리스트 생성 알고리즘

리스트 생성 알고리즘을 점 표기식으로 작성한 경우


리스트 L의 첫번째 노드로 data 값이 x인 노드를 삽입

원소값이 x인 노드를 p가 가리키는 노드 다음에 삽입

- (a) L이 공백 리스트인 경우
- (b) P가 null인 경우
- (c) L과 p가 null이 아닌 경우

리스트 L에서 p가 가리키는 노드의 다음 노드를 삭제

리스트에서 마지막 노드를 삭제하는 프로그램


- currentNode와 previousNode의 동작 과정
- currentNode 포인터가 어떤 노드를 가리키면 previousNode 포인 터는 currentNode가 가리키는 노드의 바로 직전 노드를 가리키도록 함
- currentNode가 리스트의 마지막 노드를 가리키게 될 때 previousNode는 마지막 두 번째 노드를 가리키게 됨


데이타 값이 x인 노드를 찾는 알고리즘

데이타 값이 x인 노드를 찾는 알고리즘의 Java 구현


LinkedList L = new LinkedList();

L에 노드가 연결되어 있는 경우





