79p
윤T : 파일 내부 텍스트 구성을 신경쓰지 않듯, 자료구조의 요소 하나하나를 ADT에서 정의할 필요는 없다.
ADT에서는 오히려 해당 자료구조를 어떤 방식으로 사용할지가 중심이 된다.
1. ADT의 정의
Abstract Data Type
추상 자료형으로, 선언한 자료형의 각 요소를 어떻게 활용하고 어떤 함수로 어떤 연산을 할지 함께 정의한다.
2. ADT 예시 '배열기반 순차리스트'
1) 리스트와 ADT의 관계
자료구조인 리스트를 어떤 함수로 어떤 연산기능하게 활용할 것인지 정리해놓은 것이 ADT이다.
2) 리스트의 종류
(1) 순차 리스트
인덱스로 값에 접근할 수 있는 배열기반 리스트이다.
(2) 연결리스트
동적할당으로 생성한 노드를 연결하는 방식의, 일반적인 연결리스트이다.
* 리스트가 무조건 연결리스트인것은 아니다. 배열기반의 순차 리스트도 존재한다.
3) ADT 예시
<리스트 자료구조의 ADT>
데이터를 리스트에 입력하고, 조회하고, 삭제 및 반환하는 연산을 수행하는 프로그램이다.
주석달린 모든 부분이 리스트라는 자료구조를 어떤 함수로 어떻게 활용할지 나타내고 있으므로
본 코드블럭은 배열기반 순차리스트의 ADT이다.
void Listinput(List* plist);
//주소값 반환
void Linsert(List* plist, int data);
//데이터 저장(삽입)
int LFirst(List* plist, int data);
//초기화
//첫 데이터 조회
//조회 성공시 true, 실패시 false 반환
int LNext(List* plist, int data);
//반복호출가능
//순차적으로 데이터 조회
//조회 성공시 true, 실패시 false 반환
int LRemove (List* plist);
//반복호출 연이어서 불가능 (반환 데이터를 삭제하므로,삭제함수 또 호출하기 전에 미리 주소이동필요 )
//반환 데이터 삭제
//삭제할 데이터 반환
int LCount(List* plist);
//리스트 내 데이터 개수 반환
'자료구조' 카테고리의 다른 글
[이실직고 day 4] 배열기반 연결리스트 마무리 (0) | 2021.08.11 |
---|---|
이실직고 day 3 배열리스트 (0) | 2021.08.10 |
[이실직고 day 2] problem 3-1 (0) | 2021.08.06 |
[ADT] ADT 정의, 예시 (0) | 2021.08.05 |