01. 자료구조의 개요 데이터를 효과적으로 저장하고 처리하는 방법 메모리와 컴퓨터 성능을 효율적으로 사용 선형구조 배열 연결 리스트 스택 큐 비선형 구조 트리 그래프 성능 측정 방법론 시간 복잡도 : 알고리즘에 사용되는 연산 횟수 공간 복잡도 : 알고리즘에 사용되는 메모리의 양 image.png > 효율적인 알고리즘을 사용한다고 가정할 때 ...
02. 연결리스트 연결리스트의 필요성 배열 사용 시 데이터를 순차적으로 저장 가능한 장점 존재 메모리 공간이 불필요하게 낭비될 수 있음 배열 기반의 리스트 배열 리스트의 삽입 image.png 배열 리스트의 삭제 image.png > 특정한 위치의 원소를 삭제하고자 한다면 위의 그림에서 처럼 삭제 후 당길 수 있음 배열 리스트의 구현 배열...
03. 양방향 연결 리스트 양방향 연결 리스트의 특징 머리(Head)와 꼬리(Tail)을 모두 가짐 각 노드는 앞 노드와 뒤 노드의 정보를 모두 가짐 양방향 연결 리스트의 구조 image.png 삽입 과정 image.png image.png , POP(데이터 삭제) 등의 연산 스택의 연산 과정(배열) image.png image.png image.png , POP(데이터 삭제) 등의 연산 큐의 연산 과정 (배열) image.png image.png image.png 는 출발노드에서 목적지 노드...
08. 그래프의 개념과 구현 그래프의 개념 Graph란 사물을 정점(Vertex)와 간선(Edge)로 나타내기 위한 도구 두가지 방식으로 구현 인접 행렬(Adjacency Matrix) : 2차원 배열을 사용 인접 리스트(Adjacency List) : 리스트를 사용 인접 행렬 각 노드를 정점으로 보고 그 사이 연결을 간선으로 나타냄 각 인...
09.해시 해시의 정의 Hash는 데이터를 최대한 빠른 속도로 관리하도록 돕는 자료구조 메모리 공간이 많이 소모되지만 매우 빠른 속도로 데이터 처리 데이터베이스 등에 활용 해시의 동작 특정한 값(Value)을 찾고자 할 때 그 값의 키(Key)로 접근 가능 해시 함수는 Modulo 등의 수학 연산으로 O(1)만에 값에 접근 가능 image.png ...