달력

12

« 2019/12 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  



 

 

트리(tree) 자료 구조의 활용

트리 자료구조는 활용분야가 다양한 자료 구조 입니다.

·         운영체제의 파일 시스템

·         검색 엔진

·         DOM(Document Object Model)

·         데이터 베이스

·         컴파일러

 


'Development > Algorithm, DataStructure' 카테고리의 다른 글

Data Structure Visualizations  (0) 2019.05.25
트리(tree)  (0) 2019.05.01
트리(tree) 자료 구조의 활용  (0) 2019.04.26
데이터양(데이터용량) 변환  (0) 2019.04.21
Algorithm Visualizer  (0) 2019.04.15
알고스팟(ALGOSPOT)  (0) 2019.04.07
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

데이터양(데이터용량) 변환

 

http://bit.ly/2D58lg6


 

 


'Development > Algorithm, DataStructure' 카테고리의 다른 글

트리(tree)  (0) 2019.05.01
트리(tree) 자료 구조의 활용  (0) 2019.04.26
데이터양(데이터용량) 변환  (0) 2019.04.21
Algorithm Visualizer  (0) 2019.04.15
알고스팟(ALGOSPOT)  (0) 2019.04.07
큐(Queue) 도식도  (0) 2019.03.24
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

Algorithm Visualizer

코드의 알고리즘을 시각화시켜주는 사이트입니다.

 

 

https://algorithm-visualizer.org/


 

 

 

 

https://github.com/algorithm-visualizer/algorithm-visualizer


 


'Development > Algorithm, DataStructure' 카테고리의 다른 글

트리(tree) 자료 구조의 활용  (0) 2019.04.26
데이터양(데이터용량) 변환  (0) 2019.04.21
Algorithm Visualizer  (0) 2019.04.15
알고스팟(ALGOSPOT)  (0) 2019.04.07
큐(Queue) 도식도  (0) 2019.03.24
해싱 속도, 해시코드의 성능  (0) 2019.01.13
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

알고스팟(ALGOSPOT)

https://algospot.com/


 


'Development > Algorithm, DataStructure' 카테고리의 다른 글

데이터양(데이터용량) 변환  (0) 2019.04.21
Algorithm Visualizer  (0) 2019.04.15
알고스팟(ALGOSPOT)  (0) 2019.04.07
큐(Queue) 도식도  (0) 2019.03.24
해싱 속도, 해시코드의 성능  (0) 2019.01.13
오버플로우(overflow), 언더플로우(underflow)  (0) 2019.01.02
Posted by codedragon codedragon

댓글을 달아 주세요

   

   

큐(Queue)

http://codedragon.tistory.com/4689   

   



큐(Queue) 도식도

   

   

    

 

들어가는 순서

A -> B -> C

나가는 순서

A -> B -> C

 

   

   

Posted by codedragon codedragon

댓글을 달아 주세요


 

해싱 속도

링크드 리스트는 검색에 검색에 불리한 자료구조이기 때문에 링크드 리스트이 크기가 커질 수록 검색속도가 떨어지게 됩니다. 이는 하나의 배열에 데이터의 수가 많아질수록 검색에 시간이 걸리게 됩니다.

 

반면에 배열은 배열의 크기가 커져도 원하는 요소가 번째에 있는 지만 알면 아래의 공식에 의해 빠르게 원하는 값을 검색할 있습니다.

배열의 n번째 요소의 주소 = 배열의 시작 주소 + type size*n

 

 

 

해시코드의 성능

하나의 배열에 많은 데이터가 저장되어 있는 보다는 많은 배얼에 하나의 데이터만 저장되어 있는 상태가 빠른 검색 결과를 얻을 있습니다.

 

성능이 떨어지는 경우


 

성능이 좋은 경우


 

 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

오버플로우(overflow)

스택 공간이 가득찼을 하나의 데이터를 넣을려고 경우 스택 오버플로우가 일어나고 프로그램에 오류를 야기하게 됩니다.


 

 

 

언더플로우(underflow)

스택 저장공간에 데이터가 없는데 프로그램에서 스택에서 데이터를 꺼내려고할 경우 언더플로우가 일어나며 프로그램에 오류를 야기하게 됩니다.


 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

선형 구조를 가지는 자료구조

구분

설명

스택

(Stack)

스택 자료구조에 먼저 저장된 것이 제일 나중에 나오게 됩니다.

(Queue)

스택과 반대로 가장 최근에 저장된 것이 제일 먼저 나옵니다.

환영

(Circular Queue)

 

한정된 길이 안에서 부수적인 작업없이 읽고 쓰기를 있는 큐입니다.

(Deque)

양쪽에서 넣기와 빼기를 있는 일반화된 선형구조입니다.

 

 





Posted by codedragon codedragon

댓글을 달아 주세요

 

 

트리(tree) 구조

·       노드(Node)

·       부모와 자식, 그리고 형제

·       경로(Path)

·       깊이(Depth)

·       차수(Degree)

 

 

 

 

노드(Node)

·       트리는 노드(Node, 마디) 구성되어 있습니다.

·       노드는 서로 부모-자식 관계로 연결되어 있습니다.

·       트리 자료구조에서는 부모노드가 여러 개의 자식노드를 가질 있습니다.

 


 

Node

·       노드, 마디

·       트리의 이루는 구성요소

Root

·       뿌리, 루트

·       트리의 근간이 되는 노드로 최상위에 존재

Leaf

·       잎노드, 단말노드(Terminal)

·       트리의 가장 끝에 위치하고 있는 노드

Branch

·       가지

·       루트와 잎노드 사이에 있는 노드

 

 

 

 

부모와 자식, 그리고 형제

·       B C D 부모(Parent)이고, C D B 자식(Children)

·       C D 형제(Sibling)


 

 

 

 

경로(Path)

·       B, D, F”는 B에서 F까지의 경로

 


 

 

 

 

 

깊이(Depth)

·       루트 노드에서 해당 노드까지의 경로의 길이

·       레벨(Level) 같은 깊이를 가지는 노드의 집합을 일컫는

·       높이(Height) “가장 깊은 곳”에 있는 노드까지의 깊이

 


 

 

 

 

 

차수(Degree)

·       자식 노드의 개수

·       트리의 차수는 트리 내에 있는 노드들 가운데 자식 노드가 가장 많은 노드의 차수를 말합니다.

 


 

A 3차수, B 2차수, D 2차수, G 1차수, I 1차수, J 1차수

 

 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

컬렉션 생성(Kotlin)

kotlin.collections 패키지 안에 JCF(Java Collection Framework) 클래스와 매칭되는 클래스와 코틀린에 추가된 클래스들이 존재합니다.

type

함수명

수정가능 여부

반환 타입(실제 타입

List

listOf()

X (immutable)

kotlin.collections.List

List

mutableListOf()

O (mutable)

kotlin.collections.MutableList

List

arrayListOf()

O

kotlin.collections.ArrayList

(java.utlil.ArrayList)

 

 

 

 

Set

setOf()

X

kotlin.collections.Set

Set

mutableSetOf()

O

kotlin.collections.MutableSet

Set

hashSetOf()

O

kotlin.collections.HashSet

(java.utlil.HashSet)

Set

linkedSetOf()

O

kotlin.collections.LinkedHashSet

(java.utlil.LinkedHashSet)

Set

sortedSetOf()

O

kotlin.collections.TreeSet

(java.util.TreeSet)

 

 

 

 

Map

mapOf()

X

kotlin.collections.Map

Map

mutableMapOf()

O

kotlin.collections.MutableMap

Map

hashMapOf()

O

kotlin.collections.HashMap

(java.utlil.HashMap)

Map

linkedMapOf()

O

kotlin.collections.LinkedHashMap

(java.util.LinkedHashMap)

Map

sortedMapOf()

O

kotlin.collections.SortedMap

(java.util.SoredMap)

 

intellij IDE에서 임포트한 클래스의 정의 부분을 보면 Kotlin Java Collections typealias 매핑된 것을 확인할 있습니다.

 

C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.2.4\plugins\Kotlin\kotlinc\lib\kotlin-stdlib-sources.jar!\kotlin\collections\TypeAliases.kt


 


 

 

 

TypeAliases.kt

/*

 * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license

 * that can be found in the license/LICENSE.txt file.

 */

 

@file:Suppress("ACTUAL_WITHOUT_EXPECT") // for building kotlin-stdlib-minimal-for-test

 

package kotlin.collections

 

@SinceKotlin("1.1") public actual typealias RandomAccess = java.util.RandomAccess

 

 

@SinceKotlin("1.1") public actual typealias ArrayList<E> = java.util.ArrayList<E>

@SinceKotlin("1.1") public actual typealias LinkedHashMap<K, V> = java.util.LinkedHashMap<K, V>

@SinceKotlin("1.1") public actual typealias HashMap<K, V> = java.util.HashMap<K, V>

@SinceKotlin("1.1") public actual typealias LinkedHashSet<E> = java.util.LinkedHashSet<E>

@SinceKotlin("1.1") public actual typealias HashSet<E> = java.util.HashSet<E>

 

 


Posted by codedragon codedragon

댓글을 달아 주세요