자료구조의 정의
효율적인 프로그램을 작성할 때 가장 우선적인 고려사항은 저장공간의 효율성과 실행시간의 신속성이다.
자료 구조는 프로그램에서 사용하기 위한 자료를 기억장치의 공간 내에 저장하는 방법과 저장된 그룹 내에 존재하는 자료간의 관계, 처리방법 등을 연구 분석하는것을 말함.
1. 자료 구조는 자료의 표현과 그것과 관련된 연산임.
2. 자료 구조는 일련의 자료들을 조직하고 구조화하는 것
3. 어떠한 자료 구조에서도 필요한 모든 연산들을 처리할 수 있음.
4. 자료 구조에 따라 프로그램 실행시간이 달라짐.
배열(Array)
동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖고 있는 집합.
1. 배열은 정적인 자료 구조로 기억장소의 추가가 어렵고, 데이터 삭제 시 데이터가 저장되어 있던 기억장소는 빈 공간으로 남아있어 메모리의 낭비가 발생함.
2. 배열은 첨자를 이용하여 데이터에 접근함.
3. 배열은 반복적인 데이터 처리 작업에 적합한 구조
4. 배열은 데이터마다 동일한 이름의 변수를 사용하여 처리가 간편함.
5. 배열은 사용한 첨자의 개수에 따라 n차원 배열이라고 부름.
선형리스트(Linear List)
일정한 순서에 의해 나열된 자료 구조.
선형 리스트는 배열을 이용하는 연속 리스트와 포인터를 이용하는 연결리스트로 구분됨
연속리스트 - 데이터가 연속적으로 쭉 붙어 있다.
1. 연속 리스트는 배열과 같이 연속되는 기억장소에 저장되는 자료 구조이다.
2. 연속 리스트는 기억장소를 연속적으로 배정받기 때문에 기억장소 이용 효율은 밀도가 1로서 가장 좋다.
3. 연속 리스트는 중간에 데이터를 삽입하기 위해서는 연속된 빈 공간이 있어야 하며, 삽입,삭제 시 자료의 이동이 필요
연결리스트
1. 연결리스트는 자료들을 반드시 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조이다.
2. 연결리스트는 노드의 삽입,삭제 작업이 용이함.
3. 기억 공간이 연속적으로 놓여 있지 않아도 저장할 수 있음.
4. 연결 리스트는 연결을 위한 링크(포인터)부분이 필요하기 때문에 순차리스트에 비해 기억 공간의 이용효율이 좋지 않음
5. 연결 리스트는 연결을 위한 포인터를 찾는 시간이 필요하기 때문에 접근 속도가 느림.
6. 연결리스트는 중간 노드 연결이 끊어지면 그 다음 노드를 찾기 힘듦
스택(Stack)
리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조
1. 스택은 가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO)방식으로 자료를 처리함.
2. 스택의 용도 : 재귀 호출, 후위 표기법, 서브루틴 호출, 인터럽트 처리, 깊이 우선 탐색 등과 같이 왔던 길을 되돌아 가는 경우에 사용됨
3. 스택의 모든 기억 공간이 꽉 채워져 있는 상태에서 데이터가 삽입되면 오버플로가 발생하며, 더 이상 삭제할 데이터가 없는 상태에서 데이터를 삭제하면 언더플로가 발생함.
4.TOP : 스택으로 할당된 기억공간에 마지막으로 삽입된 자료가 기억된 위치를 가리키는 요소
5. Bottom : 스택의 가장 밑바닥
큐(Queue)
리스트의 한쪽에서는 삽입작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료 구조
1. 큐는 가장 먼저 삽입된 자룍 가장 먼저 삭제되는 선입선출방식으로 처리함.
2. 큐는 시작과 끝을 표시하는 두개의 포인터가 있음.
3. 프론트 포인터 : 가장 먼저 삽입된 자료의 기억 공간을 가리키는 포인터로, 삭제 작업을 할 때 사용함.
4. 리어 포인터 : 가장 마지막에 삽입된 자료가 위치한 기억 공간을 가리키는 포인터로, 삽입작업을 할 때 사용함.
5. 큐는 운영체제의 작업 스케줄링에 사용함.
데크(Deque)
1. 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료 구조.
2. Double Ended Queue의 약자
3. Stack과 Queue의 장점만 따서 구성한 것.
4. 입력이 한쪽에서만 발생하고 출력은 양쪽에서 일어날 수 있는 입력제한과 입력은 양쪽에서 일어나고 출력은 한곳에서만 이루어지는 출력제한이 있음.
그래프(Graph)
1. 그래프 G는 정점V(Vertex)와 간선 E(Edge)의 두 집합으로 이루어짐.
2. 간선의 방향성 유무에 따라 방향그래프와 무방향 그래프로 구분됨
3. 통신망(Network), 교통망, 이항관계, 연립방정식, 유기화학 구조식, 무향선분 해법 등에 응용됨
4. 트리(Tree)는 사이클이 없는 그래프(Graph)
G1 : 무방향 그래프 G2: 트리 G3 : 방향그래프
방향/무방향 그래프의 최대 간선수
n개의 정점으로 구성된 무방향 그래프에서 최대 간선 수는 n(n-1)/2이고, 방향 그래프에서 최대 간선수는 n(n-1)입니다.
'자격증(정보처리기사)' 카테고리의 다른 글
2025 정보처리기사 필기 도전기 20 - 트리 (0) | 2025.05.06 |
---|---|
2025 정보처리기사 필기 도전기 16 - 코드 (2) | 2025.04.29 |
2025 정보처리기사 필기 도전기 15 - 모듈 (2) | 2025.04.29 |
2025 정보처리기사 필기 도전기 14 - 객체지향 분석 (1) | 2025.04.28 |
2025 정보처리기사 필기 도전기 13 - 객체지향 (3) | 2025.04.25 |