정보처리기사

✅ [30일차] 자료구조 심화 – 그래프, 해시, 리스트 완전 정리

news800905 2025. 5. 28. 07:56
728x90
SMALL

📘 1. 그래프(Graph)

  • **노드(정점)와 간선(연결)**으로 구성된 자료구조
  • 트리보다 일반적인 연결 구조
  • 방향 그래프 / 무방향 그래프, 가중치 그래프로 구분
구성 요소설명
정점(Vertex) 데이터를 담는 점
간선(Edge) 정점 간 연결선
인접(Adjacent) 연결된 두 정점 관계
 

그래프 표현 방법

  1. 인접 행렬: 2차원 배열 사용 (공간 낭비 많음)
  2. 인접 리스트: 연결 리스트 사용 (공간 효율 ↑)

📌 기출 포인트:

  • 인접 행렬 vs 인접 리스트 비교
  • 방향/무방향 구분 문제 자주 출제

📘 2. 해시(Hash)

  • 데이터를 고정된 길이의 값으로 변환하는 방식
  • 빠른 탐색, 삽입, 삭제에 유리
구성 요소설명
해시 함수(Hash Function) 키 → 해시 주소로 변환
해시 테이블 실제 데이터 저장소
충돌(Collision) 서로 다른 키가 같은 주소로 변환될 때 발생
 

충돌 해결 방법

  • 체이닝: 같은 해시 주소에 연결리스트로 저장
  • 오픈 주소법: 비어있는 다음 주소에 저장

📌 기출 포인트:

  • 충돌(Collision) 개념 꼭 암기
  • 충돌 해결 방법 종류와 예시

📘 3. 연결 리스트(Linked List)

  • 각 노드가 데이터 + 다음 노드의 주소를 가지는 구조
  • 동적 메모리 할당이 가능, 삽입/삭제가 용이
종류설명
단일 연결 리스트 다음 노드로만 연결
이중 연결 리스트 이전/다음 노드로 양방향 연결
원형 리스트 마지막 노드가 첫 번째 노드와 연결됨
 

📌 배열보다 삽입/삭제가 빠르지만, 탐색은 느림


📘 4. 트리(Tree) 심화

  • 이진 탐색 트리(BST) 이외에도 다양한 트리 구조 존재
트리 종류설명
힙(Heap) 완전 이진 트리 기반, 우선순위 큐 구현에 사용
B-트리 균형 잡힌 다진 트리, 데이터베이스에서 사용
AVL 트리 높이 균형 유지 트리, BST의 성능 개선형
 

📌 기출 포인트:

  • 힙 정렬은 최소 힙 또는 최대 힙을 이용
  • B-트리/AVL 트리 → 균형 잡힌 트리의 필요성 관련 문제

📘 5. 기출 포인트 요약

  • 그래프는 정점 + 간선, 표현 방식(행렬/리스트) 기억
  • 해시는 충돌 해결 방식에 집중
  • 연결 리스트는 삽입/삭제 유리, 탐색 불리
  • 트리 심화 → 힙, AVL, B-트리 기본 구조 암기 필수

📝 기출 예시 문제

다음 중 해시 충돌 해결 방법으로 옳은 것은?

① 다중 스택 사용
② 오픈 주소법
③ 이진 탐색
④ 퀵 정렬

✅ 정답:

 

728x90
LIST