[자료구조] 4.2 단순 연결 리스트의 ADT와 구현 (1)
Updated:
단순 연결 리스트의 ADT와 구현 (1)
연결리스트의 ADT - 기능정렬 추가된 연결리스트
- 이전과 동일한 함수
- 새로운 함수
- SetSortRule
- 정렬의 기준을 설정하기 위한 함수
새 노드의 추가 위치
머리에 추가하는 경우
- 장점 : 포인터 변수 tail이 불필요
- 단점 : 저장 순서를 유지하지 못함
꼬리에 추가하는 경우
- 장점 : 저장 순서가 유지됨
- 단점 : 포인터 변수 tail이 필요
중간에 추가하는 경우
- 단점 : head 와 tail 모두 필요
SetSortRule 함수
void SetSortRule ( List * plist, int (*comp)(LData d1, LData d2) );
- 반환형이 int
**int** (*comp)(LData d1, LData d2) - LData형 인자를 2개 전달받음
int (*comp)(**LData d1, LData d2**) - 함수 주소값 전달
int (***comp**)(LData d1, LData d2)
int WhoIsPrecede(LData d1, LData d2) {
if(d1 < d2) {
// d1이 앞순서인 경우
return 0;
} else {
// d2이 앞순서거나 같은 경우
return 1;
}
}
=> 정렬의 기준은 오름차순/내림차순과 같이 결정된 약속(정의)를 근거로 함수가 정의되어야함
Leave a comment