YJ의 새벽
자료구조 ? 본문
--효율적으로 접근하고 수정할 수 있도록 데이터를 구성하고 저장하는 법.
--각 원소들이 논리적으로 정의된 규칙에 의해 나열되며
자료에 대한 처리를 효율적으로 수행할수 있도록 자료를 구분하여 표현한 것.
선형 자료구조 : 자료룰 구성하는 데이터를 순차적으로 나열시킨 구조
-- 배열 (Array)
-- 연결 리스트 (Linked List)
-- 스택 (Stack)
-- 큐 (Queue)
비선형 자료구조 : 하나의 자료 뒤에 여러개의 자료가 존재하는 구조
--트리 (Tree)
--그래프 (Graph)
-----------------------------선형 자료구조
** 배열 ? : 가장 기본적인 자료구조로 특정 자료형의 데이터를 일렬로 나열한 구조
-- 데이터 접근이 용이
-- 데이터 삽입/삭제가 어려움
-- 구조가 간단하여 프로그램 작성이 쉬움.
** 연결 리스트 ? : 각 노드가 데이터와 포인터를 가지고 선형으로 연결되어있는 구조
-- 배열과 반대.
-- 데이터 접근이 느림
-- 데이터 삽입/삭제가 쉬움
-- 포인터를위한 추가공간필요, 프로그램작성 어려움
**스택 ? :(항아리) 삽입/삭제가 한 방향에서 이루어지는 구조
-- 삽입된 데이터가 먼저 삭제되는 후입선출 (LIFO) 구조
** 큐 ? : (파이프,줄서기) 한방향에서는 삽입, 한방향에서는 삭제.
-- 선입선출 (FIFO)
-- 양뱡향에서 삽입삭제가 이뤄지는 큐를 덱(Deque)이라고 부름.
------------------------- 비선형 자료구조
** 트리 ? : 자료들 사이의 계층적 관계를 나타내는데 사용하는 자료구조
-- 부모.자식 관계로 표현
-- 루트노드 존재.
루트노드 (Root Node) : 트리 최상의 노드
깊이 (Depth) : 루트노드에서 해당노드까지 도달하는데 사용하는 간선의 개수.
레벨 (Level) : 노드의 깊이 +1
형제노드 : 부모가 동일한 노드
조상노드 : 해당 노드의 부모 노드로부터 루트노드까지 가는 경로에 존재하는 노드들.
후손노드 : 해당 노드를 루트로 하는 서브트리에 있는 모든 노드
노드의 차수 (Degree) : 노드의 자식 수
** 그래프 ? : 노드와 노드 간 연결 관계를 수학적으로 단순화 하여 표현한 것.
무향 간선 : 정점을 연결하는 간선에 방향이 존재하지 않음 ( 일방통행이 아니다 )
유향 간선 : 정점을 연결하는 간선에 방향이 존재
인접 : 두 정점에 대해서 간선이 존재하는 경우
부속 : 두 정점에 대해서 간선이 존재하는 경우 간선 입장에서의 관계
차수 : 정점에 부속된 간선의 수 .
in-degree : 방향 그래프에서 정점에 들어오는 간선의 수
out-degree : 나가는 간선의 수
--그래프의 종류
*무향그래프 : 무향 간선으로 이루어진 그래프
*유향그래프 : 유향 간선으로 이루어진 그래프
*가중치 그래프 : 가중치(or비용)를 갖는 간선으로 이루어진 그래프
*정규 그래프 : 모든 정점이 동일한 차수를 가지는 그래프
*완전 그래프 : 임의의 두 정점을 잇는 간선이 존재하는 그래프
완전 그래프는 정규 그래프
*연결 그래프 : 임의의 두 정점에 대해 경로가 존재하는 그래프
어라운드 허브 스튜디오 - Around Hub Studio
우리에게 필요한 정보를 담는 '어라운드 허브 스튜디오'입니다! 📌 영상은 매주 수요일 7시 업로드 중입니다. [ 정보 ] 알고 싶은 컨텐츠, 동영상 건의 👉 around.hub.official@gmail.com 도서 판매 👉 서
www.youtube.com
'SelfStudy > JAVA 로 배우는 알고리즘' 카테고리의 다른 글
이진트리 (0) | 2023.02.20 |
---|---|
피보나치수열 (0) | 2023.02.20 |
DFS,BFS (0) | 2023.02.20 |