본문 바로가기

정보처리기사/II. 소프트웨어 개발

II. 소프트웨어 개발 - 데이터 입출력 구현 (1)

(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. 논리 데이터 저장소 검증 절차

   개체 확인 -> 속성 확인 -> 관계 확인 -> 데이터베이스 요구사항 확인 -> 데이터 흐름 확인 -> 설계기준 확인 -> 접근권한 확인

 

 - 개체 확인 : 입력데이터, 출력데이터 식별 확인

 - 속성 확인 : 데이터속성, 공통 코드 파악 수준 검토

 - 관계 확인 : 개체 간 관계 적절성 확인