리스트의 이해
순차 리스트
- 배열을 기반으로 구현된 리스트
연결 리스트
- 메모리의 동적 할당을 기반으로 구현된 리스트
이는 구현 방법을 기준으로 한 구분이다. 따라서 이 두 리스트의 ADT 가 동일하다고 해서 문제가 되지않는다.
리스트의 특징
- 저장형태 : 데이터를 나란히(하나의 열로) 저장한다.
- 저장특성 : 중복이 되는 데이터를 저장을 허용한다.
이것이 리스트의 ADT를 정의하는데 있어서 고려해야 할 유일한 내용이다.
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) 반환
LDta LRemove(List* plist)
-LFirst 또는 LNext 함수의 마지막 반환 데이터를 삭제한다.
-삭제된 데이터는 반환된다.
-마지막 반환 데이터를 삭제하므로 연이은 반복 호출을 허용하지 않는다.
int Lcount(List* plist)
-리스트에 저장되어 있는 데이터의 수를 반환한다.
LData는 저장 대상의 자료형을 결정할 수 있도록 typedef로 선언된 자료형의 이름이다.
LNext 와 LFirst 로 나뉜이유는 조회를 위해서 LFirst 가 필요한거다.
배열의 특징
'back-end > C & API' 카테고리의 다른 글
window api wsprintf 와 swprintf의 차이점 (0) | 2023.07.21 |
---|---|
리스트 간단 설명 요약 (0) | 2023.07.21 |
STL 란? (0) | 2023.07.21 |
자료구조 STL MAP (0) | 2023.07.21 |
스택 예제 (0) | 2023.07.21 |