목록정리 (19)
어읽로꾸거
트리란? 트리는 데이터 사이의 계층 관계를 나타내는 자료구조입니다. 루트는 트리의 가장 위쪽에 있는 노드입니다. 하나의 트리에는 하나의 루트가 있습니다. 그림을 거꾸로 보면 나무처럼 생겼죠? 리프는 트리의 가장 아랫부분에 있는 노드를 리프라고 합니다. 엄밀히 말하면 해당 노드가 더 이상 아래로 뻗어 나갈 수 없으면 리프노드입니다. external node 라고도 합니다. 레벨은 루트로 부터 얼마나 떨어져 있는가를 나타냅니다. 루트의 레벨은 0이고 루트부터 가지가 하나씩 뻗어 나갈때 마다 레벨이 1씩 늡니다. 차수는 노드가 갖는 자식의 수를 차수라고 합니다. 예를 들어 위 루트의 차수는 2입니다. 모든 노드의 자식 수가 2개 이하인 경우는 특별히 이진트리 라고 합니다. 트리의 특징중 하나는 임의의 두 노드..
선형 리스트란? 그냥 리스트 즉 배열과 다른 점은 아마도 데이터를 다루는데 있어서 더 효율적이므로 선형 리스트를 사용하겠죠? 아마 그냥 배열(vector)에 비해서 자료를 중간에 끼워넣거나 할때 더 빠르기 때문입니다. 그냥 배열은 다음과 같은 문제를 갖게됩니다. 😥 쌓이는 데이터의 크기를 알아야 합니다. 데이터의 삽입, 삭제에 따라 데이터를 모두 옮겨야 하기 때문에 효율이 좋지 않습니다.(한칸씩 앞당겨지거나 뒤로 밀리는거는 시간이 O(n) 나옴) 리스트는 자료를 줄지어 나열한 자료구조를 의미합니다. 가장 단순한 구조인 선형 리스트(linear list) 또는 연결 리스트(linked list)는 다음과 같이 생겼습니다. 이때 각각의 데이터를 노드(node) 또는 요소(element)라고 합니다. 각각의 ..
인터페이스는 객체의 사용 방법을 정의한 타입 개발코드와 객체가 통신하는 중간역할을 한다고 생각하면 좋을듯 코드가 직접 메소드를 불러오면 좋지만, 중간에 인터페이스를 거치는 이유는 코드를 수정하지 않고 객체를 변경하기에 용이하기 때문 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출한다. 인터페이스 선언 interface 인터페이스 {//상수타입 상수이름 = 초기값(못바꿈); //추상 메소드타입 메소드이름(매개변수 ..); //디폴트 메소드default 타입 메소드이름(매개변수 ..); //정적 메소드static 타입 메소드이름(매개변수 ..);} 상수 필드인터페이스는 객체 사용설명서이므로 데이터를 저장하는 필드는 선언할 수 없다하지만 상수필드는 선언 가능상수는 인터페이스에 고정된 값..