티스토리 뷰
선형 구조 : 앞 , 뒤 관계가 1:1 인 구조
비선형 구조: 원소들 간의 1:n 관계를 가지는 자료구조
트리 : 비선형구조, 원소들 간에 계층관계를 가지는 계층형 자료구조, 하위원소로 내려가면서 확장되는 나무모양구조
비선형구조는 선형구조에서와 같이 선후 연결관계를 알 수 없기 때문에 노드를 중복되지 않게 전부 방문하는 특별한 방법이 필요 하다.
- 너비 우선 탐색 ( BFS ) : 자식 노드들을 먼저 모두 차례로 방문한 후, 방문 했던 자식 노들들을 기준으로 하여 다시 해당노드의 자식 노드들을 차례로 방문하는 방식.
인접한 노드들에 대해 탐색을 한후 , 차례로 다시 너비 우선 탐색을 진행해야 하므로, 선입 선출 형태의 자료구조인 큐를 활용함
BFS()
큐 생성
루트 v를 큐에 삽입
while( 큐가 비어있지 않은 경우){
t <- 큐의 첫번쨰 원소 반환
t 방문
for(t와 연결된 모든 간선에 대해) {
u <- t의 자식 노드
u를 큐에 삽입
}
- 깊이 우선 탐색 ( DFS )
가장 마지막에 만났던 갈림길의 노드로 되돌아가서 다시 깊이 우선 탐색을 반복해야 하므로 재귀적으로 구현하거나 후입선출 구조의 스택 사용해서 구현 ( 재귀가 사실 함수호출이 스택의 구조라 push,pop없이 보통 재귀적으로 많이 구현 )
3가지 기본적인 순회방법 : 전위순회, 중위순회, 후위순회
-DEBUG
여기부터 뭔가 버그가 있을것 같은데 ---> 그 라인에 브레이크 포인트
함수안에 파고들기(ex API, 재귀) ( F5 ) 함수 파고들었던거 빠져나오기 (F7)
F8을 누르면 다음 디버그 포인트로 이동된다. 만약 디버그 포인트가 지정되지 않았다면 디버그가 종료된다.
힙 : 완전 이진트리에 있는 노드중에서 키 값이 가장 큰 노드나 키 값이 가장 작은 노드를 찾기 위해서 만든 자료구조(최대 힙, 최소 힙)
우선순위 큐가 힙으로 구현되어있음 ( 자바에서 힙의 구현체는 PriorityQueue이다 ).
'Algorithm' 카테고리의 다른 글
나머지 연산의 분배법칙 (0) | 2021.09.27 |
---|---|
프림 VS 다익스트라 알고리즘 (0) | 2021.09.26 |
정렬 알고리즘(선택, 삽입, 퀵, 계수) (0) | 2021.07.26 |
Integer 클래스 활용 (0) | 2021.04.28 |
자바 큰 수 범위를 표현하기 BigInteger 클래스 (0) | 2021.04.10 |
- Total
- Today
- Yesterday
- git #
- java 김영한 강의 #2chapter
- vue정리
- 프로시저 #배치 #스케쥴러 #잡 #바인딩변수
- SQLD 후기
- 버팀목 국민은행
- SSAFY 6기
- Optinal Chaining
- 청년 버팀목 대출
- Merge Request #Pull Request
- #web /was 구분이유
- vue 특징
- 자바 코테 유용한 함수
- 알고리즘 나머지연산
- safe operator
- 나머지연산 분배법칙
- String Immutable
- 코드리뷰 #클린코드
- push to origin has encountered a problem
- 프로그래머스 네트워크
- 퍼블리싱 #앱에서 DB바로 안붙이는 이유
- JAVA 코테
- Property or method "" is not defined
- Java
- Prim vs Dijkstra
- git branch strategy
- Java #replace #replaceAll
- JAVA설치 #JDK #JRE
- Netlify #CICD
- 부트스트랩 템플릿 사용시 충돌
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |