효율적 프로그램 고려사항 1순위 - 저장공간의 효율성, 실행시간의 신속성
자료구조는 데이터를 기억장치 공간 내에 효율적으로 저장하고 자료간 처리방법을 연구 분석하는 것
동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖는 집합
정적 자료구조로 기억장소 추가 어려움
데이터 삭제시 껍데기 빈공간으로 남아있어 메모리 낭비 발생
배열 첨자 (subscript)를 통해 인덱싱
사용되는 첨자의 개수에 따라 n차원 배열이라 부름
데이터마다 동일한 변수 사용하여 처리가 간편
다음의 경우에서 a는 변수, [숫자]는 첨자
- a[0], a[1], a[2] -> 1차원 배열, 0~n-1까지 총 n개의 기억장소 존재
- a[0][0], a[0][1], a[0][2]
a[1][0], a[1][1], a[1][2] -> 2차원 배열, 총 n*n 개의 기억장소 존재
반복적 데이터 처리작업에 적합
일정한 순서에 의해 나열된 자료구조
👉🏻 배열 이용하는 연속 리스트와 포인터 이용하는 연결 리스트로 구분
✓ 포인터: 현재의 위치에서 다음 노드 위치를 알려주는 요소
✓ 노드: 데이터와 링크(포인터) 부분으로 구성된 기억공간
연속 리스트
연결 리스트
리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조
Top = Top + 1 //Top: 스택 포인터
If Top > M Then
Overflow
Else
X(Top) <- Item
If Top = 0 Then
Underflow
Else
Item <- X(Top)
Top = Top-1
//Stack에서 자료 삭제시킬 때 삭제 자료 있는지 없는지부터 확인
리스트의 한쪽에서는 삽입, 한쪽에서는 삭제
그래프 G는 정점 V(Vertex)와 간선 E(Edge)의 두 집합으로 이루어짐
참고도서 📚
2022 시나공 정보처리기사 필기