카테고리 없음

[Careerthon] 비선형자료구조

고래강이 2023. 11. 17. 11:59

개요

  • 비선형자료구조란?
  • 트리와 힙
  • 그래프
  • 해시테이블

비선형자료구조

하나의 자료뒤에 여러개의 자료가 존재할 수 있는 형태 (앞, 뒤 관계가 1:N , N:N 관계)

트리그래프가 대표적 예시이며 계층구조를 나타내기에 적합함

노드: 연결구조 또는 계층구조에서 데이터의 기본단위를 뜻하는 단어

LinkedList도 노드와 링크로 이루어져있 듯이 비선형자료구조에만 쓰이는 것이 아님

트리(Tree)

이진트리 : 자식노드가 2개 이상인 트리 (힙, 이진검색트리)

 

힙(Heap)

트리가 채워질 때 무조건 왼쪽노드부터 채워진다.(index순서가 왼쪽부터)

데이터에서 최댓값최솟값을 빠르게 찾기 위해 고안 된  완전이진트리(트리가 완전히 채워진 구조)

O(log n)만큼의 시간복잡도를 가진다

동작)

  •  데이터삽입
    • 삽입할 노드는 기본적으로 왼쪽 최하단부 노드부터 채워진다
    • 삽입한 노드(자식노드)의 크기가 root(부모노드)보다 클 경우 와 값을 비교해서 위치를 바꾸며 이를 반복한다.

 

  • 데이터 삭제
    • 최소값과 최댓값을 알아내는 자료구조이기에 삭제된다면 Root에 위치한 부모노드의 값이 삭제된다.
    • 부모노드가 비었다면 가장 최하단부 노드를 루트로 옮기고 자신보다 큰 자식노드가 있는지 값을 비교한다.
    • 왼쪽과 오른쪽 노드 모두 클 경우에는 비교 후 큰 값과 swap한다.


그래프(Graph)

연결되어있는 원소간의 관계를 표현한 자료구조로써 노드와 그노드를 연결하는 간선을 하나로 모아놓은 자료구조

부모자식개념 및 루트노드의 개념이 없는 네트워크 모델

지도나 지하철노선의 최단경로 등에 사용 됨


맵(Map)

특정 순서에 따라 키(key)와 값(value)의 조합으로 형성된 자료구조 해시테이블을 구현할 때 사용 됨키(key)를 사용해서 데이터 검색, 추가, 삭제, 수정이 가능하며 키는 고유해야한다.데이터의 효율적인 저장과 검색을 위해 해시함수를 사용한다.

일반적으로 Map이라 사용되는 자료구조는 해시 맵 또는 해시 테이블로써 해시함수를 통해서 배열의 인덱스로 값을 저장하거나 검색할 수 있다

삽입, 삭제, 검색의 평균 시간복잡도가 O(n)에 가깝다


셋(Set)

중복요소가 없이 유일한 값을 저장하는 자료구조

순서를 보장하지 않아 추가된 순서대로 나열되지 않는다

원시데이터와 객체를 모두 저장할 수 있는 자료구조이며 추가된 데이터는 내부적으로 객체로 저장된다


해시 테이블(Hash table)

키와 값으로 데이터를 저장하는 자료구조 빠르게 데이터를 검색할 수 있다 (평균 O(1)의 시간복잡도)해시함수를 통해서 변환한 값을 배열의 index로 저장하고 값을 저장한다. (우리가 흔히 사용하는 Map)