일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 노마드코더
- manifest error
- section3 회고
- 콘솔 manifest
- chart.js fillText
- UI/UX 분석
- Firestore_Data_Types
- 삽질일지
- 인쇄 css
- yarnrc.yml
- 북클럽
- WIL
- section1회고
- 경우의 수 줄이자
- 에러 마지막줄
- manifest에러
- ux
- react-router-dom v.6
- stackoverflow-clone회고
- Manifest 에러
- chart.js 반응형
- CND
- 리액트 라우터 버전 에러
- HTTP요청
- 도넛 차트 가운데 글자
- UI
- 노개북
- 리액트 라우터 돔 에러
- vue chart.js
- Section2회고
- Today
- Total
FE
[TIL_19] 자료구조 알고리즘 기초 본문
[keyword]
자료구조, Stack, Queue, Tree, Graph
자료구조
➡️ 데이터를 효율적으로 다룰 수 있는 방법
선형구조
➡️ Stack, Queue
비선형구조
➡️ Tree, Graph
🔮Stack
- FILO(First In Last Out) 선입후출, 데이터의 입출력 방향 같고, 한가지뿐
- 예시 ) 브라우저의 이전버튼, 다음버튼으로 페이지 이동
🔮Queue
- FIFO(First In First Out) 선입선출, 데이터의 입력과 출력 방향이 정해져 있으며 입력에 한 가지 출력에 한 가지 총 두가지로 정해져 있다.
- 예시 ) 컴퓨터 프린터기 (먼저 들어온 데이터가 먼저 출력 되는 구조)
🔮Tree
- 나무를 거꾸로 뒤집어 놓은 듯한 모습을 가지고 있다해서 붙여진 자료구조
- 루트라는 하나의 꼭지점으로 여러개 데이터를 간선(edge)로 연결 각 데이터들을 노드라고 하며 두개의 노드가 상하 계층으로 연결되면 부모/자식 관계를 가짐
- 자식이 없는 노드는 나무의 잎과 같다하여 리프노드(Leaf Node)라 부름
- 예시 ) 컴퓨터 디렉토리 구조
- 이진트리(Binary tree) : 자식 노드가 최대 두개인 노드들로 구성된 트리 (왼,오)
- 정 이진 트리 : 각 노드가 0 or 2 자식노드 가짐
- 포화 이진 트리 : 정 이진 트리이면서, 완전 이진 트리 모든 리프 노드 레벨 동일, 모든 레벨 가득 차있는 트리
- 완전 이진 트리(Complete binary tree) : 마지막 레벨을 제외한 모든 노드가 가득 차 있고, 마지막 레벨의 왼쪽은 채워져야함
- 트리 순회 : 특정 목적을 위해 모든 노드를 한 번씩 방문하는 것
-전위 순회 : 루트 ➡️ 루트 기준 왼쪽 ➡️ 오른쪽
-중위 순회 : 젤 왼쪽 노드 ➡️ 루트 ➡️ 오른쪽
-후위 순회 : 젤 왼쪽 노드➡️오른쪽➡️루트
🔮Graph
- 직접적인 관계가 있는 경우 두 점을 이어주는 선 있다.
- 간접적이라면 몇 개의 점과 선에 걸쳐 이어짐
- 하나의 점을 그래프에서 정점(vertex) 하나의 선은 간선(edge)라 함
- 인접 행렬(metrix), - 인접 리스트(list)
CS50 강의를 들어서 개념은 아는 상태였는데 실제로 구현해보는건 차원이 다름을 느꼈다...
'TIL' 카테고리의 다른 글
[인쇄] 인쇄 설정 (0) | 2024.03.11 |
---|---|
git clone 후 yarn > 변경사항이 너무 많을 때 (.yarnrc.yml 파일이 생성될 때) (0) | 2024.02.19 |
[TIL_18]웹표준/웹접근성 (0) | 2022.09.07 |
[TIL_17]React-상태관리 (0) | 2022.09.02 |
[TIL_16]React - Custom Component (0) | 2022.08.30 |