01. 자료구조의 개요 데이터를 효과적으로 저장하고 처리하는 방법 메모리와 컴퓨터 성능을 효율적으로 사용 선형구조 배열 연결 리스트 스택 큐 비선형 구조 트리 그래프 성능 측정 방법론 시간 복잡도 : 알고리즘에 사용되는 연산 횟수 공간 복잡도 : 알고리즘에 사용되는 메모리의 양 image.png > 효율적인 알고리즘을 사용한다고 가정할 때 ...
02. 연결리스트 연결리스트의 필요성 배열 사용 시 데이터를 순차적으로 저장 가능한 장점 존재 메모리 공간이 불필요하게 낭비될 수 있음 배열 기반의 리스트 배열 리스트의 삽입 image.png 배열 리스트의 삭제 image.png > 특정한 위치의 원소를 삭제하고자 한다면 위의 그림에서 처럼 삭제 후 당길 수 있음 배열 리스트의 구현 배열...
03. 양방향 연결 리스트 양방향 연결 리스트의 특징 머리(Head)와 꼬리(Tail)을 모두 가짐 각 노드는 앞 노드와 뒤 노드의 정보를 모두 가짐 양방향 연결 리스트의 구조 image.png 삽입 과정 image.png image.png ![image.png](https://images.velog.io/post-ima
04. 스택 스택 개요 Stack은 한쪽으로 들어가서 한쪽으로 나오는 자료구조 PUSH(데이터 삽입), POP(데이터 삭제) 등의 연산 스택의 연산 과정(배열) image.png image.png image.png ![image.png](https://images.velog.io/post-images/underlier12/6
05. 스택 계산기 |표기법|설명|예시| |:--:|:--:|:--:| |중위 표기법|일반적으로 사람이 수식을 표기할 때 사용|7 * 5 + 3| |후위 표기법|컴퓨터가 계산하기 편한 수식의 형태|7 5 * 3 +| 스택 활용해 수식 계산하는 방법 수식을 후위 표기법으로 변환 후위 표기법을 계산해 결과 도출 중위표기법 -> 후위표기법 피연산...
06. 큐 큐 개요 Queue는 뒤쪽으로 들어가서 앞쪽으로 나오는 자료구조 PUSH(데이터 삽입), POP(데이터 삭제) 등의 연산 큐의 연산 과정 (배열) image.png image.png image.png ![image.png](https://images.velog.io/post-images/underlier12/5eea3
07. 이진 트리 이진 트리 개요 트리는 나무의 형태를 뒤집은 것과 같은 형태의 자료구조 각 노드간 연결고리를 가지라고 하며 최상단을 루트, 최하단을 리프라 함 image.png 노드간 부모/자식 관계가 성립하며 같은 부모를 가진 노드들은 형제 노드라 함 image.png 트리의 길이, 깊이, 높이 길이(Length)는 출발노드에서 목적지 노드...
08. 그래프의 개념과 구현 그래프의 개념 Graph란 사물을 정점(Vertex)와 간선(Edge)로 나타내기 위한 도구 두가지 방식으로 구현 인접 행렬(Adjacency Matrix) : 2차원 배열을 사용 인접 리스트(Adjacency List) : 리스트를 사용 인접 행렬 각 노드를 정점으로 보고 그 사이 연결을 간선으로 나타냄 각 인...
09.해시 해시의 정의 Hash는 데이터를 최대한 빠른 속도로 관리하도록 돕는 자료구조 메모리 공간이 많이 소모되지만 매우 빠른 속도로 데이터 처리 데이터베이스 등에 활용 해시의 동작 특정한 값(Value)을 찾고자 할 때 그 값의 키(Key)로 접근 가능 해시 함수는 Modulo 등의 수학 연산으로 O(1)만에 값에 접근 가능 image.png ...