자료구조 그래프 그래프(Graph) * 그래프(Graph): 연결되어 있는 객체 간의 관계를 표현하는 자료구조 * 가장 일반적인 자료구조 형태 그래프의 기본 구성 * 그래프 G: 객체를 나타내는 정점 또는 노드와 객체들을 연결하는 간선 또는 링크의 집합 * 정점 (Vertex): 여러 가지 특성을 가질 수 있는 객체 (ex: 도시, 사람, 웹페이지) * 간선 (Edge): 정점들 간의 관계 (ex:
자료구조 트리 트리 (Tree) * 나무를 닮은 자료구조로, 상위 원소에서 하위 원소로 내려가면서 확장되는 나무 모양의 구조 * 원소들 간에 계층적인 관계를 나타내는 계층형 자료구조 * 원소들 간에 1:N 관계를 가지는 비선형 자료구조 * 트리는 부모-자식 관계의 노드들로 이루어짐 * 응용 분야: 가계도, 조직도, 컴퓨터의 폴더 구조, 탐색 트리, 힙 트리, 결정 트리 등 트리의 용어
자료구조 리스트 리스트 * 순서를 가진 항목들의 모임 * 각 항목은 해당 리스트 내에서 유일한 위치를 가짐 리스트의 예 * 요일: (일요일, 월요일, ..., 토요일) * 한글 자음 모임: (ㄱ, ㄴ, ..., ㅎ) * 카드: (Ace, 2, 3, ..., King)[[1]] * 스마트폰 문자 메시지 목록: 시간 순서대로 정렬된 메시지들 * 다항식의 각 항들: $3x^2 + 2x - 5$ 에서 $(3x^2,
자료구조 포인터와 연결된 구조 포인터 (Pointer) * 메모리의 주소를 저장하는 변수 * ex) 집배원이 택배를 배달할 때, 택배 송장의 '주소'를 보고 집을 찾아가는 것과 유사하다. 포인터는 데이터가 실제로 저장된 '주소'를 가지고 있으며, 이를 통해 데이터에 접근한다. 포인터를 사용하는 이유 * 기억 공간의 효율적 사용: 필요한 만큼만 동적으로 메모리를 할당하고 해제하여 메모리
자료구조 배열과 구조체 배열과 구조체 * 배열(array)과 구조체(struct)는 여러 데이터를 효과적으로 관리하기 위한 자료구조이다. * 배열: 같은 데이터 타입의 요소들을 연속적인 메모리 공간에 저장한다. * ex) 성적 처리 프로그램에서 45명의 성적(정수형) 저장 * 구조체: 다양한 데이터 타입의 요소들을 하나의 단위로 묶어 저장한다. * ex) 주소록 프로그램에서 친구 정보(이름-문자열, 전화번호-문자열, 주소-문자열 등) 저장
자료구조 큐 큐(Queue)의 개념과 구조 큐(Queue)란? * 스택과 유사하게 삽입과 삭제의 위치가 제한된 유한 순서 리스트(List)이다. * 데이터가 들어온 순서대로 처리되는 선입선출(FIFO: First-In, First-Out)의 특성을 갖는 자료구조이다. * 먼저 들어온 데이터가 먼저 나간다. * ex) 계산대의 대기열, 매표소 줄서기 * 스택과의 차이점: 스택은 한쪽 끝(top)에서만 삽입/삭제가
자료구조 스택 스택이란? 스택의 개념 및 특징 * 스택(stack): 문자 그대로 '쌓아놓은 더미'를 의미 * ex) 쌓여 있는 접시 더미 * 후입선출(LIFO: Last-In First-Out) 원리: 가장 마지막(최근)에 들어온 데이터(접시)가 가장 먼저 나가는(꺼내지는) 구조 * 입출력이 한쪽 끝에서만 제한적으로 이루어지는 자료구조이다. 스택의 구조 * 스택 상단(top): 데이터의
자료구조 자료구조와 알고리즘 자료구조 * 다양한 자료를 효율적인 규칙에 따라 정리하고 보관하기 위해 조직화한 자료 형태 * 컴퓨터에서 자료를 정리하고 조직화하는 다양한 구조 * 자료(Data)는 저장 공간(Memory)과 연산(읽기, 쓰기, 삽입, 삭제, 탐색 등)으로 구성됨 * 자료구조는 지원되는 연산에 따라 다양하게 존재 자료구조 분류 * 단순 자료구조와 복합 자료구조 * 단순 자료구조: 숫자나 문자