본문 바로가기
C/자료구조

ArrayList (배열 기반 리스트)

by Glory_Choi 2022. 5. 30.
반응형

리스트란?

    리스트 : 원소들이 연속적으로 저장되는 형태의 자료형

 

리스트의 조건(특징)

    저장 형태 : 데이터를 나란히 저장한다(선형)

    저장 특성 : 중복된 데이터 저장을 허용

 

리스트 자료구조 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.h에 정의된 구조체 ArrayList

    typedef struct __ArrayList {
            LData arr[LIST_LEN];   // 리스트의 저장소인 배열 선언
            int numofData;    //데이터의 갯수를 저장 할 변수
            int curPosition;    //참조 할 위치를 기록 흘 변수
    }ArrayList;

 

 

ArrayListMain.c
ArrayList.c

 

 

 

 

배열 기반 리스트의 장점

    데이터의 참조가 쉽다.

    인덱스 값 기준으로 어디든 한번에 참조 가능.

배열 기반 리스트의 단점

    배열의 길이가 초기에 결정 되어야 한다. (사용하지 않는 메모리 낭비 발생)

    삭제의 과정에서 데이터 이동(복사)이 매우 빈번히 일어남.

    

 

출처 : 윤성의 열혈 자료구조

반응형

'C > 자료구조' 카테고리의 다른 글

이진 트리 순회  (0) 2022.06.02
이진 트리(Binary Tree)  (0) 2022.06.01
Tree(트리)  (0) 2022.06.01
재귀  (0) 2022.05.29
자료 구조  (0) 2022.05.29