본문 바로가기

2016/10

C언어 이진 탐색 트리(Binary Search Trees in C) C언어 이진 탐색 트리(Binary Search Trees in C) - 이진 탐색 트리는 각 노드가 객체인 연결된 데이터 구조로 표현된다. - 각 노드를 기준으로 노드의 키 값보다 작은 값은 좌측, 큰 값은 우측으로 보낸다. - 각 노드는 키 값 외에도 left, right, p의 포인터 변수를 포함한다. - left, right는 자신의 자노드들을, p는 상위 노드를 가르킨다. - root 노드는 유일하게 상위 노드가 없는 노드이다. [ Fig. 1 ] 이진 탐색 트리 1. 동작 원리 (1) root 노드를 가르키는 root 포인터를 선언하고 초기화 한다. (2 - 1) 노드 삽입 명령 시 새로운 노드를 생성하고, 키 값을 입력한다. (2 - 2) 현재 트리를 구성하고 있는 노드들의 키 값과 비교하여.. 더보기
작도와 합동 작도와 합동 1. 작도 눈금 없는 자와 컴퍼스만을 사용하여 도형을 그리는 것 (1) 눈금 없는 자 : 두 점을 연결하여 선분을 그리거나 주어진 선분을 연장하는 데 사용 (2) 컴퍼스 : 원을 그리거나 주어진 선분을 같은 길이의 선분으로 옮기는 데 사용 2. 삼각형 (1) 삼각형의 구성 요소 - 오른쪽 그림과 같이 세 변 AB, BC, CA와 세 각 ∠A, ∠B, ∠C로 이루어진 도형을 삼각형 ABC라 한다. △ABC - △ABC에서 ∠A와 마주 보는 변 BC를 ∠A의 대변, ∠A를 변 BC의 대각이라 한다. (2) 삼각형의 세 변의 길이 사이의 관계 (한 변의 길이) < (나머지 두 변의 길이의 합) 3. 삼각형의 작도 다음의 각 경우에 삼각형을 하나로 작도할 수 있다. (1) 세 변의 길이가 주어질 때.. 더보기
기본 도형 기본 도형 1. 도형 (1) 도형 - 평면도형 : 삼각형, 사각형, 원과 같이 한 평면 위에 놓여 있는 도형 - 입체도형 : 직육면체, 원기둥과 같이 한 평면 위에 있지 않은 도형 - 도형의 기본 요소 : 점, 선, 면을 도형의 기본 요소라 한다. (2) 교점과 교선 - 교점 : 선과 선 또는 선과 면이 만나서 생기는 점 - 교선 : 면과 면이 만나서 생기는 선 2. 직선, 반직선, 선분 (1) 직선의 결정 : 한 점을 지나는 직서는 무수히 많지만, 서로 다른 두 점을 지나는 직선은 오직 하나 뿐이다. (2) 직선, 반직선, 선분 - 직선 AB : 서로 다른 두 점 A, B를 지나는 직선 ↔AB - 반직선 AB : 직선 AB 위의 점 A에서 시작하여 점 B의 방향으로 뻗어나가는 직선의 일부분 →AB - .. 더보기
8장 - C언어 조건문(Conditional statement in C)(2) 8장 - C언어 조건문(Conditional statement in C)(2) 1. switch~case 주어진 변수 또는 수식에 대해, 그 값에 따라 일치하는 각각의 case 를 수행하는 실행문입니다. int main( void) { switch( 조건 or 변수 ) { case a : case b : .... default : } } 구조는 위의 소스 코드와 같습니다. switch 뒤의 괄호 안에 조건 또는 변수가 들어가게 됩니다. 그리고 그 값에 따라 일치하는 case 문을 수행하는 구조입니다. 맨 마지막의 default 는 if~else문의 else와 같은 역할로 위의 case에 만족하는 값이 없을 경우 수행하게 됩니다. int main( void) { int number; number = 2; .. 더보기
C언어 원형 이중 연결리스트(Circular, doubly linked lists in C) C언어 원형 이중 연결리스트(Circular, doubly linked lists in C) - 이중 연결리스트의 구조에서 가장 처음과 마지막 노드가 서로 연결 되어있는 구조 - 시작 위치를 알기 위해 연결리스트의 맨 앞에 NULL 노드를 추가 [ Fig. 1 ] 원형 이중 연결리스트, site: introduction to algorithm 3/E 1. 동작 원리 (1) NULL 노드를 생성하고 초기화하고 HEAD 포인터가 이를 가르키게 한다. (2-1) 삽입 명령시 새로운 노드를 생성한다. (2-2) NULL 노드의 이전 노드를 새로 생성한 노드로 지정하고, 새로 생성한 노드의 다음 노드를 NULL 노드로 지정한다. (2-3) 연결리스트의 가장 마지막 노드를 찾아서, 이 노드의 다음 노드를 새로 생성.. 더보기
C언어 이중 연결리스트(Doubly linked lists in C) C언어 이중 연결리스트(Doubly linked lists in C) - 연결 리스트의 한 종류이다. - 각 노드가 자신의 다음 노드 및 자신의 이전 노드를 가르킨다. [ Fig. 1 ] Doubly linked list, site : introduction to algorithms 3/E 1. 동작 원리 (1) 연결리스트의 가장 처음을 가르키는 HEAD 포인터를 초기화한다. (2 - 1) 삽입 명령시 연결리스트의 가장 마지막 노드를 찾는다. (2 - 2) 연결된 노드가 없을 경우, HEAD가 새로 생성한 노드를 가르키게 한다. (2 - 2) 연결된 노드가 있을 경우 가장 마지막 노드 다음에 새로 생성한 노드를 연결하고, 새로 생성한 노드가 마지막 노드를 가르키게 한다. (3 - 1) 제거 명령시 제거하.. 더보기
C언어 단일 연결리스트(Singly linked lists in C) C언어 단일 연결리스트(Singly linked lists in C) - 연결리스트는 객체가 선형순서로 정렬되는 자료구조이다. - 배열의 인덱스가 아닌 각 객체의 포인터에 의해 연결리스트의 순서가 결정된다. - 연결리스트는 동적 구조를 위해 간단하고 유연한 표현을 제공한다. - HEAD 포인터가 리스트의 맨 앞을 가르키고, 각 노드가 다음 노드를 가르킨다. [ Fig. 1 ] Singly linked list 1. 동작 원리 (1) 연결리스트의 가장 처음 노드를 가르키는 HEAD 포인터를 초기화한다. (2 - 1) 삽입 명령시 새로운 노드를 생성하고, key 값을 입력한다. (2 - 2) HEAD 포인터가 가르키는 노드가 없을 경우 HEAD 포인터에 노드를 연결한다. (2 - 3) or 연결리스트의 가장.. 더보기
대푯값과 산포도 대푯값과 산포도 1. 대푯값과 평균 (1) 대푯값 : 자료 전체의 특징을 하나의 수로 나타낸 값 (2) 평균(Mean) : 변량의 총합을 변량의 개수로 나눈 값 즉, (평균) = (변량)의 총합 / (변량)의 총 개수 PLUS. 대푯값에는 평균, 중앙값, 최빈값 등이 있으며 그 중에서 평균을 가장 많이 사용한다. 2. 중앙값과 최빈값 (1) 중앙값(Median) : 변량을 작은 값부터 크기순으로 나열했을 때, 중앙에 위치하는 값 - 자료의 개수가 홀수이면 중앙에 놓이는 값이 중앙값이다. - 자료의 개수가 짝수이면 중앙에 놓이는 두 자료의 평균이 중앙값이다. (2) 최빈값(Mode) : 변량 중에서 가장 많이 나타나는 값, 즉 도수가 가장 큰 값 - 자료의 값 중에서 도수가 가장 큰 값이 한 개 이상 있으.. 더보기
경우의 수와 확률 경우의 수와 확률 1. 사건과 경우의 수 (1) 사건 : 실험이나 관찰에 의하여 일어나는 결과 (2) 경우의 수 : 어떤 사건이 일어날 수 있는 모든 가짓수 2. 사건 A 또는 사건 B가 일어나는 경우의 수(합의 법칙) 두 사건 A, B가 동시에 일어나지 않을 때, 한 사건 A가 일어나는 경우의 수가 m가지이고, 다른 사건 B가 일어나는 경우의 수가 n가지이면 (사건 A와 사건 B가 동시에 일어나는 경우의 수) = m + n(가지) 3. 사건 A와 사건 B가 동시에 일어나는 경우의 수(곱의 법칙) 한 사건 A가 일어나는 경우의 수가 m가지이고, 그 각각에 대하여 다른 사건 B가 일어나는 경우의 수가 n가지이면 (사건 A와 사건 B가 동시에 일어나는 경우의 수) = m x n(가지) PLUS. 두 사건이 .. 더보기
7장 - C언어 조건문(Conditional statement in C)(1) 7장 - C언어 조건문(Conditional statement in C)(1) 조건문이란 하나의 조건에 근거하여 다음에 수행할 처리를 판단하는 실행문입니다. 즉, 정수형 변수 A가 있다고 가정한다면 A의 값에 따라 어떠한 수행을 할 것인지 판단하는 것입니다. 예로 A >= 10 경우, A == 0 일 경우 등등 사용자가 원하는 조건을 자유롭게 사용하여 판단할 수 있습니다. 조건문의 종류로는 if~else, switch~case, 삼항연산자 등이 있습니다. 1. if else문 - 가장 많이 사용되는 조건문 - 사용이 간단하고, 자유로운 수식 표현 가능 - 조건이 참이면 if문을, 거짓이면 else 문을 실행 int main( void) { if( 조건 ) { // 수행 내용 1 } else { // 수행.. 더보기