YJ의 새벽

자료구조 ? 본문

SelfStudy/JAVA 로 배우는 알고리즘

자료구조 ?

YJDawn 2023. 2. 20. 16:00

--효율적으로 접근하고 수정할 수 있도록 데이터를 구성하고 저장하는 법.

--각 원소들이 논리적으로 정의된 규칙에 의해 나열되며

   자료에 대한 처리를 효율적으로 수행할수 있도록 자료를 구분하여 표현한 것.

 

 

선형 자료구조 : 자료룰 구성하는 데이터를 순차적으로 나열시킨 구조

 -- 배열 (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
Comments