리스트란?
리스트 : 원소들이 연속적으로 저장되는 형태의 자료형
리스트의 조건(특징)
저장 형태 : 데이터를 나란히 저장한다(선형)
저장 특성 : 중복된 데이터 저장을 허용
리스트 자료구조 ADT
void ListInit(List* plist); //리스트 초기화
void LInsert(List* plist, LData data); //리스트에 데이터를 저장
int LFirst(List* plist, LData* pdata); //리스트의 첫번째 데이터 참조
int LNext(List* plist, LData* pdata); //리스트의 참조 데이터의 다음 데이터 참조
LData LRemove(List* plist); //리스트 마지막 반환 데이터 삭제
int LCount(List* plist); //리스트에 저장되어 있는 데이터 수 반환
ArrayList.h에 정의된 구조체 ArrayList
typedef struct __ArrayList {
LData arr[LIST_LEN]; // 리스트의 저장소인 배열 선언
int numofData; //데이터의 갯수를 저장 할 변수
int curPosition; //참조 할 위치를 기록 흘 변수
}ArrayList;
배열 기반 리스트의 장점
데이터의 참조가 쉽다.
인덱스 값 기준으로 어디든 한번에 참조 가능.
배열 기반 리스트의 단점
배열의 길이가 초기에 결정 되어야 한다. (사용하지 않는 메모리 낭비 발생)
삭제의 과정에서 데이터 이동(복사)이 매우 빈번히 일어남.
출처 : 윤성의 열혈 자료구조