Stack과 Queue에 대해 배우고 또 새로운 데이터 구조를 배웠다. 트리는 많이 본 모양이라서 익숙했는데, 그래프는 내가 생각하고 있던 그래프 형태와는 달라서 흠칫했다 ㅎ..
데이터 구조 파트에 오고나서부터 낯설고 생소해서 못하는건지 내가 그냥 이해를 잘 못하는건지 ㅠㅠ.... 전자라고 생각해야지...
일단 배운 내용을 정리하며 개념에 대해 다시 생각해봐야겠다. ( 코플릿 문제 접근부터 힘들었기때문...😖)
여러개의 점들이 서로 복잡하게 연결되어 있는 관계를 표현한 자료구조
컴퓨터 공학에서 말하는 그래프는 일반적으로 알고 있던 그래프 형태와는 좀 달랐다.
😫 (역시 새롭다 ..)
점은 그래프에서 정점(vertax)
이라고 표현
선은 간선(edge)
이라고 표현한다.
두 정점을 바로 이어주는 간선이 있다면 이 두 정점은 인접하다라고 할 수 있다.
인접행렬은 정점들간의 인접합을 표시해주는 행렬로 2차원 배열의 모습을 하고 있다.
정점이 이어져있으면 1, 아니면 0
두 정점 사이에 관게의 유무를 확인하는데 용이함
A에서 B로 진출하는 간선의 유무를 알기 위해서는 0번째 줄의 1번쨰 열에 저장된 값으로 파악이 가능하다!
가장빠른 경로찾기를 할때 (shortest path)
각 정점이 어떤정점과 인접한지 리스트형태로 나타난 표현방식
각 정점마다 하나의 리스트를 가지며, 이 리스트에는 자신과 인접한 다른 정점들이 담겨 있다.
그래프의 여러 구조 중 일방향 그래프의 한 구조로, 그 모습이 나무와 닮아 있다고 해서 트리 구조라는 이름이 붙여졌다.
우리가 이미 잘알고 있는 컴퓨터 디렉토리의 구조를 보면 알 수 있다. 가장 상위의 폴더로 부터 아래로 내려가는 구조를 살펴 볼 수 있다. 제일 첫 번째 폴더로 가는 경로는 유일하다!!
파일 시스템과 같은 구현은 모두 트리를 이용해서 만든다.
자식 노드가 최대 2개인 노드들로 구성된 트리를 이진 트리라고 정의
이 2개의 노드는 왼쪽 자식과 오른쪽 자식으로 분류
모든 왼쪽 자식들은 루트나 부모보다 작은 값이고, 모든 오른쪽 자식들은 루트나 부모보다 큰 값인 특징을 가지고 있는 이진 트리를 이진 탐색 트리라고 정의
아직은 낯설고 어렵게 느껴지는 부분이라서 계속 접해보고 문제를 풀고 부딪쳐봐야지 데이터 구조 파트는 내것이 될것같다 ㅎㅎ...
다행히 다른 동기들 한테도 물어보니 이파트가 어렵고 힘들다고 한다.
(전부는 아님 ㅋㅋ 잘하는 분들은 역시 잘해)
어찌되었든 낙심하지말고 계속해서 공부해보자!! 아직 데이터구조 1주일밖에 안했으니깐 🔥🔥🔥🔥🔥🔥