자료구조 3

[C언어] 07. 배열 (Array)

학생 10명의 점수를 다루려고 변수 10개를 따로 선언하면, 합계를 구할 때 10번 더해야 하고 인원이 바뀌면 코드를 전부 고쳐야 한다. 배열은 같은 종류의 데이터 여러 개를 하나의 이름으로 묶어, 이런 번거로움을 없애준다.1. 배열이란?배열(Array)같은 자료형의 데이터 여러 개를 하나의 변수 이름으로 묶어 관리하는 자료구조다. 각 데이터는 0부터 시작하는 인덱스(index)로 구별하며, 크기는 고정되고 메모리의 연속된 공간에 저장된다.int scores[10]; // int형 10개짜리 배열scores[0]부터 scores[9]까지 10개의 요소가 만들어진다. 인덱스가 0부터 시작하므로, 크기가 10인 배열의 마지막 인덱스는 9다. 이걸 놓쳐 scores[10]에 접근하면 배열 범위를 벗어나는 ..

language/c 2026.08.17

[자료구조] 02. 선형 리스트 (배열)

선형 리스트는 원소들이 순서를 가지고 1:1 관계로 나열된 자료구조다. 배열로 구현한 선형 리스트는 메모리에 원소가 연속으로 저장되므로 인덱스 접근이 빠르다.1. 배열 리스트의 특징항목내용저장 방식연속된 메모리 공간에 저장접근iArray[iIndex]로 O(1) 접근삽입삽입 위치 뒤쪽 원소들을 한 칸씩 뒤로 이동삭제삭제 위치 뒤쪽 원소들을 한 칸씩 앞으로 이동단점크기를 미리 정해야 하고 중간 삽입/삭제가 느림 배열 리스트의 핵심은 논리적 순서와 물리적 저장 순서가 같다는 점이다. 그래서 0번, 1번, 2번처럼 바로 접근할 수 있지만, 중간에 값을 넣거나 빼면 뒤쪽 원소들이 움직여야 한다.2. 삽입 연산예를 들어 {10, 20, 30, 40}의 1번 위치에 15를 넣으려면, 기존 20, 30, 40을 오른..

[자료구조] 01. 자료구조 개요와 분류

자료구조는 데이터를 아무렇게나 저장하는 방법이 아니라, 처리 목적에 맞게 데이터를 배치하고 관리하는 방식이다. 같은 데이터라도 어떤 구조에 넣느냐에 따라 탐색, 삽입, 삭제의 비용이 달라진다.이 과목에서는 어려운 용어를 앞세우기보다, 다음 흐름으로 보는 편이 이해하기 쉽다.이 구조가 어떤 상황에 필요한지 본다.C언어로 내부 동작을 직접 구현한다.C++에서는 같은 구조를 직접 구현하거나 STL로 어떻게 쓰는지 비교한다.1. 자료구조의 기본 분류분류관계대표 구조단순 구조하나의 값정수, 실수, 문자선형 구조1:1 관계배열, 연결 리스트, 스택, 큐비선형 구조1:N 또는 N:M 관계트리, 그래프파일 구조보조기억장치 저장순차 파일, 색인 파일 선형 구조는 데이터가 한 줄로 이어지는 구조다. 배열과 연결 리스트는 ..