computer_science/data_structure 2

[자료구조] 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 관계트리, 그래프파일 구조보조기억장치 저장순차 파일, 색인 파일 선형 구조는 데이터가 한 줄로 이어지는 구조다. 배열과 연결 리스트는 ..