데이터 구조/열혈 자료구조(책)

연결 리스트 (Linked List)

홍성곤 2016. 5. 1. 12:54


LinkedRead.c

배열과 연결리스트 비교

 

 삽입, 삭제

 검색

 메모리 사용

리스트 크기 할당

 배열

 느림

 빠름

 상대적 적음

 정적

 연결리스트

 빠름

 느림

 상대적 많음

 동적


정렬 기능이 추가된 리스트 자료구조의 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));
- 리스트에 정렬의 기준이 되는 함수를 등록한다.



CLinkedList.c


CLinkedList.h


CLinkedListMain.c


DBLinkedList.c


DBLinkedList.h


DBLinkedListMain.c