[자료구조] 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