본문 바로가기

school of computing

(6)
자료구조 | Ch03. Binary Search Tree 1. Binary Search Binary Search에서 값을 찾는 알고리즘은 아래와 같다. 1. 정렬된 값에서 중간값을 찾는다. 2. 찾고자 한 값이 중간값과 같으면 성공, 만약 값이 하나밖에 남지 않았을때 찾는 값과 중간값이 다르면 실패한 것이다. 3. 만약 찾는 값 중간값 이면, 중간값의 오른쪽 list로 가 위 과정을 반복한다. 2. Binary Search Tree 위 Binary Search를 Tree로 구현한 것이 Binary Search Tree이다. 정렬된 Binary Tree는 항상 Left < Root < Right를 만족해야한다. 전체 Tree로 보았을 때 한 root의 left SubTre..
자료구조 | Ch02. Binary Tree 1. Binary Tree란? Binary Tree는 모든 node가 2개 이하의 child node를 가지고 있는 tree이다. (모든 node의 degree > General Tree를 Binary Tree로 옮기는 과정에서 모든 node는 포함된다. node의 상대적 level관계는 보존되지 않는다. ex) Level of E > Level of C ----> Level of E == Level of C parent-decendant 관계는 보존된다 ex) node H는 node D의 descendant ----> node H는 node D의 descendant 3. Coding in C 각각 노드는 structure로 만든다. node의 key의 데이터 타입은 상황에 따라 변경할 수 있고 한 no..
자료구조 | Ch01. Trees 1. Tree란? Tree는 list, stack, queue와 달리 none-linear 구조 이다. Tree는 root와 leaf, interior nodes로 구성되어있다. Root node : parent node가 없는 node이다. Tree의 시작 node. Leaf node : child node가 없는 node이다. Interior node : root node나 leaf node가 아닌 node. Sibling node : 같은 parent node를 가진 node. Descendant node : 노드의 Child node의 Child를 한 node의 descendant라고 정의한다. Ancestor node : 노드의 Parent node의 parent를 한 node의 ancestor..
JAVA | Ch03. Java의 Encapsulation (information hiding) Information Hiding 프로그래머는 class method를 사용하여 코드의 상세한 내용을 공개할 필요가 없고 오직 그 method가 무엇을 하는지만 알리면 된다. 그래서 informaiton hiding으로 상세한 내용을 숨기도록 method를 설계한다. 상세한 내용을 숨기려면 어떻게 해야할까? Java에서는 내용을 공개하거나 숨길때 public과 private modifier을 사용한다. public : 다른 class에서 method나 instance variable을 사용하는 것에 제약이 없다. class는 일반적으로 public으로 선언된다. private : 다른 class에서 method나 instance variable의 이름을 사용하여 직접 접근할 수 없다. instance v..
JAVA | Ch02. Java의 Class와 Methods Java는 객체(object)로 구성되어져 있다. 이때 Object는 class type의 변수라고도 할 수 있다. Object는 data를 가지고 method로 정의된 행동을 한다. Class는 실제 Object를 어떻게 만들지 정의하는 설계도 이다. 여러 객체의 공통성을 모으고 요약하여 Abstraction(추상화)를 하여 만들어낸다. 그래서 Class를 붕어빵 틀이라고 생각하면 쉽다. 붕어빵 틀인 Class를 가지고 여러 붕어빵을 찍어내는데 이때 붕어빵 하나하나가 Object(객체) 이다. 그래서 Object는 Class의 instance라고 한다. 또한 class는 data를 가지지 않고 각각의 object가 data를 가질 수 있다. (꼭 그런것 이 아닌게 static으로 선언 했을때 전역 변수..
JAVA | Ch01. Java의 Compile과 Java 시작하기 1. Programming Languages Compilers and Interpreters 프로그래밍 언어는 Low Level 과 Hight Level로 나눌 수 있다. Low level Language (저급언어)는 컴퓨터가 이해할 수 있는 언어로 생각하면 된다. ex) binary code, assembly language High level Language (고급언어)는 사람이 비교적 쉽게 프로그래밍 할 수 있도록 만든 언어로 컴퓨터가 이해하기 힘들다. 때문에 Low level Language로 변환되어야 한다. 이때! High level language를 Low level Language로 변환 시켜주는것(Translator)을 Compiler or Interpreter이라고 부른다. Compi..