(1) 자료 구조
1. 자료 구조 (Data Structure)의 개념
- 컴퓨터상 자료를 효율적으로 저장하기 위해 만들어진 논리 구조
2. 자료 구조의 분류
- 선형구조와 비선형 구조로 나뉨
- 선형구조 - 배열, 연결리스트, 스택, 큐
- 비선형 구조 - 트리, 그래프
자료 구조 | |||||
선형 구조 | 비선형 구조 | ||||
배열 | 연결리스트 | 스택 | 큐 | 트리 | 그래프 |
3. 리스트
- 리스트는 선형 리스트, 연결 리스트로 나뉜다
- 선형리스트 : 연속되는 기억장소, 배열이 대표적, 가장 간편한 자료구조, 접근 구조가 빠름, 삽입 삭제시 기존 자료의 이동이 필요
- 연결리스트 : 포인터 연결, 노드의 삽입 삭제가 선형리스트보다 편리, 포인터를 찾아야해서 선형보다 느림, 포인터가 저장공간을 차지
*노드 (Node) : 아래 그림처럼 저장부분과 포인터 부분으로 구성된 저장공간을 뜻함
Data | Pointer |
4. 스택 (Stack) / 큐 (Quere) / 데크 (Deque)
- 스택 : LIFO 구조로 한 방향으로 삽입 삭제, PUSH는 데이터 입력 POP은 데이터 삭제, TOP은 스택의 가장 뒤 데이터로 스택포인터
- 큐 : 한쪽은 삽입 한쪽은 삭제, FIFO구조, ENQUEUE, DEQUEUE
- 데크 : 양쪽 끝에서 삽입 삭제가 가능, 큐와 스택의 구현이 가능
5. 트리 (Tree)
(1) 트리 개념
- 데이터들을 계층화 시킨 자료구조이며 노드와 링크로 구성됨
(2) 트리 용어
- 루트 노드 : 부모가 없는 최상위 노드
- 단말 노드 : 가장 말단에 위치한 노드
- 레벨 : 루트 노드를 기준으로 특정 노드까지의 경로 길이
- 조상 노드 : 특정 노드에서 루트까지 이르는 경로상 모든 노드 (루트 노드 포함)
- 자식 노드 : 특정 노드에 연결된 다음 레벨의 노드
- 부모 노드 : 특정 노드에 연결된 이전 레벨의 노드
- 형제 노드 : 같은 부모를 가진 노드
- 깊이 : 루트노드에서 특정 노드에 도달하기 위한 간선의 수 (선의 수!)
- 차수 : 특정 노드에 연결된 자식 노드의 수
(3) 트리 순회 방법
- 전위 순회 (Pre) : Root -> Left -> Right
- 중위 순회 (in) : Left -> Root -> Right
- 후위 순회 (Post) : Left -> Right -> Root
(4) 이진트리
- 이진트리란 차수가 2 이하인 노드로 구성된 트리
- 이진트리 유형
포화 이진 트리 (모든 레벨에서 노드가 꽉 차있음)
완전 이진 트리 (마지막 레벨을 제외하고 노드가 채워진 트리)
편향 이진 트리 (노드의 왼쪽이나 오른쪽 한곳만 노드가 존재하는 트리)
6. 그래프
(1) 그래프의 개념
- 노드와 간선을 하나로 모아놓은 자료구조
- 그래프의 방향성에 따라 방향성과 무방향성 그래프로 나뉜다
(2) 논리 데이터 저장소
1. 논리 데이터 저장소의 개념
- 업무를 모델링 표기법으로 형상화한 데이터의 저장소
논리 데이터 저장소 구조 : 개체 (Entity), 속성 (Attribue), 관계 (Relationship)
2. 논리 데이터 저장소 검증 절차
개체 확인 -> 속성 확인 -> 관계 확인 -> 데이터베이스 요구사항 확인 -> 데이터 흐름 확인 -> 설계기준 확인 -> 접근권한 확인
- 개체 확인 : 입력데이터, 출력데이터 식별 확인
- 속성 확인 : 데이터속성, 공통 코드 파악 수준 검토
- 관계 확인 : 개체 간 관계 적절성 확인
'정보처리기사 > II. 소프트웨어 개발' 카테고리의 다른 글
II. 소프트웨어 개발 - 제품 소프트웨어 패키징 (2) (0) | 2021.05.07 |
---|---|
II. 소프트웨어 개발 - 제품 소프트웨어 패키징 (1) (0) | 2021.05.07 |
II. 소프트웨어 개발 - 통합 구현 (1) (0) | 2021.05.07 |
II. 소프트웨어 개발 - 데이터 입출력 구현 (3) (0) | 2021.05.07 |
II. 소프트웨어 개발 - 데이터 입출력 구현 (2) (0) | 2021.05.07 |