일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료구조
- 프로젝트
- 알고리즘
- back-end
- DFS
- 백준
- backtracking
- DP
- BFS
- programmers
- java
- baekjoon
- TDD
- OS
- Spring
- 모던자바
- lambda
- 코틀린
- 그래프
- algorithm
- 백트래킹
- 프로그래머스
- LEVEL2
- kotlin
- 스프링
- Brute-force
- 자바
- Java8
- 운영체제
- 네트워크
- Today
- Total
요깨비's LAB
[Data Structrue] 자료구조란? 본문
1. 자료구조란?
자료구조(資料構造, 영어: data structure)는 전산학에서 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다.
위키백과-자료구조
* 컴퓨터의 메모리는 1차원 구조이기 때문에 현실 세계의 다차원 데이터를 다루기 위해서는 이것을 1차원인
선 형태로 바꾸는 것이 필요하다. 2차원 배열, 이진 트리, 그래프 등의 자료구조가 2차원 데이터를 1차원으로
바꾸는 구조이다. 이에 숙련되면 3차원 이상의 다차원 데이터를 처리하는 자료구조를 학습할 수 있게 된다.
2. 추상적 자료형(ADT)과의 관계
ADT: 알고리즘이 문제를 해결하는데 필요한 자료의 형태와 자료를 사용한 연산들을 수학적으로 정의한 모델
자료구조: ADT가 정의한 연산들을 구현한 구현체
스택의 예로, LIFO의 성질을 가진 ADT가 필요하니 pop과 push를 가지도록 스택이라는 ADT를 정의하고,
그것을 구현해서 함수 호출을 관리하는데 사용하는 구현체, 즉 자료구조를 콜 스택이라고 부른다.
3. 자료구조의 분류
- 선형 구조는 자료를 구성하는 데이터를 순차적으로 나열시킨 구조이다.
- 비선형 구조는 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 구조이다.
추가적으로 제가 머리에 박아넣기 위해 메모 해두는 글입니다.
2차원 배열 int arr[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}}; 은 사실 int arr[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11}; 과 동일하다.
column은 열의 개수를 의미하며, 즉, arr[2][2]는 (*arr)[2*4+2]인 (*arr)[10] 과 같다.