분류 전체보기
-
그래프(Graph) 란?Computer Science/Data_Structure 2020. 1. 3. 21:49
그래프의 소개 그래프(graph)는 객체 사이의 연결 관계를 표현할 수 있는 자료 구조다. (대표적인 예 : 지도) 지도를 그래프로 표현하면 지하철의 특정한 역에서 다른 역으로 가는 최단 경로를 쉽게 찾을 수 있다. 운영 체제에서는 프로세스와 자원들이 어떻게 연관되는지를 그래프로 분석하여 시스템의 효율이나 교착상태 유무 등을 알아낼 수 있다. 그래프로 표현할 수 있는 것들 도로 미로 선수과목 1. 그래프의 정의와 용어 그래프의 정의 그래프는 정점(vertex)와 간선(edge)들의 유한 집합이라 할 수 있다. 수학적으로는 G = (V,E)와 같이 표시한다. V(G)는 그래프의 G의 정점들의 집합, E(G)는 그래프 G의 간선들의 집합이다. 정점 : 여러 가지 특성을 가질 수 있는 객체 간선 : 이러한 정..
-
[JAVA] Call by Value 와 Call by reference 란 ?Language/Java 2020. 1. 3. 15:29
C언어를 주로 공부 했던 나는 Call by value 와 Call by reference 에 대해서 call by value 는 값을 넘기는 거고 call by reference 는 포인터를 이용해서 주소를 넘긴다고 알고 있다. 하지만 누군가 나에게 이 개념에 대해서 자세히 묻는다면 나도 깊이있게 이해한 것이 아니기 때문에 위에서 말한 대답정도로만 대답을 할 거 같다. 그래서 먼저 이 개념을 한번 더 정리를 한 후에 JAVA 에서의 Call by value 와 Call by reference 에 대해서 알아보겠다. https://wayhome25.github.io/cs/2017/04/11/cs-13/ 강의노트 12. 함수 호출방식(call-by-value, call-by-reference, call-b..
-
힙(heap) 이란 ?Computer Science/Data_Structure 2020. 1. 3. 00:22
https://gmlwjd9405.github.io/2018/05/10/data-structure-heap.html [자료구조] 힙(heap)이란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io 그림같은 자료를 가져다 쓴 곳입니다! ( 또한 잘 정리가 되어 있어서 참고 하면서 공부 했습니다. ) "C언어로 쉽게 풀어쓴 자료구조" 를 가지고 공부 중에 있습니다. 책의 내용을 정리해서 쓰고 있습니다. 여기는 그냥 제가 공부한 것을 정리하는 TIL 공간입니다. ( 책과 블로그 글 내용이 비슷하네요 ) 우선순위 큐에 대해서는 다른 글에서 따로 정리하려 한다. 힙(heap)의 개념 완전 이진 트리의 일종으로 우선순위 큐를 위..
-
이진 탐색 트리(binary search tree) 란?Computer Science/Data_Structure 2020. 1. 2. 15:50
이진 탐색 트리(binary search tree)는 이진 트리 기반의 탐색을 위한 자료 구조이다. 탐색은 내가 생각하기에도 코딩테스트와 같은 곳에서도 자주 출제가 되며 또한 컴퓨터 프로그램에서도 많이 사용되며, 가장 시간이 많이 걸리는 작업 중의 하나이므로 탐색을 효율적으로 수행하는 것은 무척 중요하다. 자주 쓰이는 자료 구조이기 때문에 잘 개념을 익혀놔야겠다. ( "C언어로 쉽게 풀어쓴 자료구조" 라는 책으로 정리 중입니다 ) https://songeunjung92.tistory.com/31 [자료구조/java] 이진 탐색 트리 BST (Binary Search Tree) - 연결 리스트 구현 * 이진 탐색 트리 (Binary Search Tree) "탐색을 위한 자료구조로 이진 트리를 사용하기 위해..
-
이진 트리의 순회Computer Science/Data_Structure 2020. 1. 2. 15:05
기본적으로 이진 트리도 데이터를 저장하기 위한 자료구조이다. 데이터는 노드의 데이터 필드를 이용하여 저장된다. 이진 트리를 순회(traversal)한다는 것은 이진트레이 속하는 모든 노드를 한 번씩 방문하여 노드가 가지고 있는 데이터를 목적에 맞게 처리하는 것을 의미한다. 트리가 가지고 있는 자료를 순차적으로 순회하는 것은 이진 트리에서 중요한 연산이다. 스택, 큐들은 대게 데이터를 선형으로 저장하고 순회하는 방법도 하나뿐이었지만, 트리는 3가지가 있다. 이진 트리 순회방법 전위순회(preorder traversal) : VLR 중위순회(inorder traversal) : LVR 후위순회(postorder traversal) : LRV 1. 전위순회 전위순회는 먼저 루트, 왼쪽 서브트리, 오른쪽 서브트..
-
이진 트리(binary tree)의 정의Computer Science/Data_Structure 2020. 1. 2. 14:46
자료구조를 오랜만에 공부하다 보니까 개념이 많이 헷갈려서 간단하게 이진 트리에 대해서 정리하면서 JAVA로 구현해 보려고 한다. 아래 블로그의 그림만 가져다 쓰려고 합니다. 이 공간은 제가 공부한 것을 정리하는 공간입니다. http://logonluv.blogspot.com/2015/02/datastructure-tree.html 트리와 이진트리(Binaty Tree)의 설명과 구현 - [형강좌 자료구조 4편] 형강좌 자료구조 시리즈 네번째 편인 트리 구조와 이진 트리(Binary Tree) 대한 설명입니다. 이해를 도모하기 위해 그림과 예제를 첨부하였습니다. logonluv.blogspot.com 이진 트리(binary tree)의 정의 트리 중에서 가장 많이 쓰이는 트리가 이진트리이다. 모든 노드가 ..
-
[JAVA] 다중 상속(multiple inheritance) 이란?Language/Java 2020. 1. 2. 04:11
예전에 자바 공부를 할 때는 다중상속 이라는게 잘 이해가 되지 않아 살짝 두려운 내용이었지만, 지금 자바 공부를 다시 하고 있을 때는 이해가 되어서 글로 정리를 해보려 한다. ( 예전엔 이게 왜 어려웠었지? ) 다중상속이 무엇인지 공부를 하기 전에 하나 알아두어야 할 것은 자바의 일반 클래스는 부모 클래스를 단 하나만 가져야 하므로 여러 부모 클래스를 갖는 다중 상속을 지원하지 않는다. 그러나 인터페이스는 추상 클래스보다 더 추상적이므로 여러 인터페이스를 상속받는 다중 상속을 지원한다. 그리고 인터페이스는 클래스가 아니다. 그래서 인터페이스를 구현 하는 클래스는 implements 를 통해서 구현을 하고 인터페이스 끼리의 상속을 받을 때는 extends 를 사용한다. 예를들어 X, Y 라는 인터페이스가 ..
-
[Git] clone 과 Fork 의 차이점Github/Git 2019. 11. 22. 00:39
이번 글에서는 clone과 Fork의 차이점을 알아보려 한다. 1. fork란? fork는 다른 사람의 Github Repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 repository를 내 Github Repository로 그대로 복제하는 기능이다. fork한 저장소는 원본(원래 Repository 주인)과 연결되어 있다. 여기서 연결되어 있다는 의미는 원래 레포지토리에 어떤 변화가 생기면(새로운 commit, push) 이는 그대로 fork된 repository로 반영할 수 있다. 이 때 fetch, pull의 과정이 필요하다 그 후 original repository에 변경 사항을 원본 레포지토리에 적용하고 싶으면 원본 저장소에 pull request를 보내야 한다..