1. 정의
자료를 컴퓨터의 기억장치 내에 저장하는 방법
다양한 자료를 효율적으로 표현하고 활용할 수 있도록 자료의 특성과 사용 용도를 고려하여 조직적, 체계적으로 정의한 것
2. 분류
선형구조: 자료가 일렬로 연결되어 있는 형태로 구성하는 방법
비선형구조: 자료의 구성이 계층구조나 망구조의 특별한 형태를 띠는 구조
[자료구조의 분류]
분류 | 설명 |
선형구조 | 자료들간의 순서 고려한 구조, 전후, 인접, 선후, 자료들간의 1:1 관계로 나열 배열, 선형리스트, 연결리스트, 스택, 큐, 데크 |
비선형구조 | 인접, 전후 자료들 간의 1:다, 다:다 관계로 배치 트리, 그래프 |
구분 | 순차자료구조 | 연결자료구조 |
메모리저장방식 | 자료를 연속적으로 저장 | 물리적 위치에 상관없이 링크에 의해 논리적인 순서를 표현 |
논리/물리 순서 일치여부 | 논리적 순서와 물리적 순서 일치 | 논리적 순서와 물리적 순서 비일치 |
연산특징 | 삽입, 삭제 연산시에도 순서대로 연속저장 | 삽입, 삭제 연산으로 논리적 순서 변경시에도 물리적 순서는 변경없음 |
프로그램기법 | 배열을 이용한 구현 | 포인터를 이용한 구현 |
3 스택과 큐
가)스택
나) 큐
다) 스택, 큐 연산 비교
구분 | 항목 | 스택 | 큐 |
삽입연산 | 연산자 | push | enQueue |
삽입위치 | top | rear | |
삭제연산 | 연산자 | pop | deQueue |
삭제위치 | top | front |
4. 트리와 그래프
가. 트리
나. 그래프
5. 자료구조의 선택기준
가. 자료의 처리시간
나. 자료의 크기
다. 자료의 활용빈도
라. 자료의 갱신정도
마. 프로그램의 용이성
5. 자료구조의 활용
가. 리스트: 배열, DBMS 인덱스, 탐색, 정렬
나. 스택: 인터럽트처리, 재귀프로그램의 순서제어, 서브루틴의 복귀 번지 저장, 후위 표기법으로 표현된 수식의 연산, 텍스트 에디터 undo기능
다. 큐: OS 작업스케쥴링, 대기 행렬처리, 비동기 데이터교환(파일, pipes, sockets), 키보드의 버퍼이용, 스풀 운용 등
라. 데크: 스택과 큐의 장점만 활용한 자료구조,
마. 트리: 탐색, 정렬, 문법파싱, 허프만코드, 결정트리, 게임
바. 그래프: 컴퓨터네트워크(근거리통신망, 인터넷, 웹), 전기회로분석, 이항관계, 연립방정식