데이터 구조/열혈 자료구조(책)
연결 리스트 (Linked List)
홍성곤
2016. 5. 1. 12:54
배열과 연결리스트 비교
| 삽입, 삭제 | 검색 | 메모리 사용 | 리스트 크기 할당 |
배열 | 느림 | 빠름 | 상대적 적음 | 정적 |
연결리스트 | 빠름 | 느림 | 상대적 많음 | 동적 |
정렬 기능이 추가된 리스트 자료구조의 ADT
void ListInit(List *pList);
- 초기화할 리스트의 주소 값을 인자로 전달한다.
- 리스트 생성 후 제일 먼저 호출되어야 하는 함수이다.
void LInsert(List *pList, LData data);
- 리스트에 데이터를 저장한다. 매개변수 data에 전달된 값을 저장한다.
int LFirst(List *pList, LData *pData);
- 첫 번째 데이터가 pData가 가리키는 메모리에 저장된다.
- 참조 성공 시 TRUE(1), 실패 시 FALSE(0) 반환
int LNext(List * pList, LData *pData);
- 참조된 데이터의 다음 데이터가 pData가 가리키는 메모리에 저장된다.
- 순차적인 참조를 위해서 반복 호출이 가능하다.
- 참조를 새로 시작하려면 먼저 LFirst 함수를 호출해야한다.
- 참조 성공 시 TRUE(1), 실패 시 FALSE(0) 반환
LData LRemove(List *pList);
- 리스트에 저장되어 있는 데이터의 수를 반환한다.
int LCount(List *pList);
- 리스트에 저장되어 있는 데이터의 수를 반환한다.
void SetSortRule(List *pList, int (*comp)(LData d1, LData d2));
- 리스트에 정렬의 기준이 되는 함수를 등록한다.