# 히프의 개념 히프(heap)는 "더미"라는 뜻이다. 히프는 여러 개의 값들 중에서 가장 큰 값이나 가장 작은 값을 빠르게 찾아내도록 만들어진 자료구조이다. 히프는 간단히 말하면 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰 (작은) 이진 트리를 말한다. 즉 A가 B의 부모 노드라고 하고 부모 노드의 키 값이 자식 노드의 키 값보다 항상 크다고 하면, 다음과 같은 조건이 항상 성립하는 트리이다.$Key(A) >= Key(B)$ 히프는 완전 이진 트리(complete binary tree) 이며 중복된 값을 허용함에 유의한다. 이진 탐색 트리에서는 중복된 값을 허용하지 않았다. 히프 안에서 데이터들은 느슨한 정렬 상태를 유지한다. 즉, 큰 값이 상위 레벨이고 작은 값이 하위 레벨에 있다는 정도의 ..
# 포인터(Pointer) 포인터는 C언어의 가장 기본이라고 할 수 있다. 포인터는 C에 존재하는 모든 자료형에 대해 존재하는데, 예를 들면 int에 대한 포인터, char에 대한 포인터, float에 대한 포인터 등의 형태로 사용된다. 포인터의 본질은 메모리의 주소값을 가진다는 점이다. 포인터에 관련해서는 아래에 보이는 두 개의 중요한 연산자가 있다.& 주소 연산자 (the address operator)* 간접지정 연산자 (the dereferencing or indirection operator) 이 연산자들의 의미를 살펴보기 위해 아래와 같이 변수를 선언했다고 해보자. int i, *pi; // int i; int *pi; 이 두문장을 따로 작성한 것과 동일하다. 위와 같이 쓴 이유는 간결성을 위..
- Total
- Today
- Yesterday