C 언어 구현 레 드 블랙 트 리
2484 단어 데이터 구조
, , 2lg(n+1)。
붉 은 검 은 나 무 는 다음 조건 을 충족 시 키 는 이 진 트 리 입 니 다.
4. 567917. 각 노드 또는 빨간색 또는 검은색..
4. 567917. 뿌리 노드 는 검은색 이다
4. 567917. 잎 노드 는 검은색 이다
4. 567917. 한 노드 가 빨간색 이 라면 두 아 이 는 검은색 이다
4. 567917. 모든 노드 에 대해 이 노드 (이 노드 를 포함 하지 않 음) 부터 모든 후대 잎 노드 의 간단 한 경로 까지 똑 같은 수량의 검은색 노드 를 포함한다
이 방안 은 보초병 Nil 을 사용 하여 모든 NULL 을 대표 합 니 다. 뿌리 노드 는 T 이 고 뿌리 노드 의 부모 노드 는 Nil 이 며 모든 잎 노드 는 Nil 입 니 다.
붉 은 검 은 나무의 한 노드 는 다음 과 같은 속성 을 포함 합 니 다.
typedef struct NODE
{
struct NODE *left; //
struct NODE *right; //
struct NODE *p; //
TREE_TYPE value; //
COLOUR colour; //
} Tree, Node;
이 프로그램 을 쓰 는 과정 에서 많은 문제점 을 발 견 했 고 버그 의 고통 을 겪 었 습 니 다. 제 가 기억 할 수 있 기 를 바 랍 니 다.
1. 함 수 를 정의 한다 면
Node *Left(Node *x)
{
return x->left;
}
그럼 이렇게 호출 해도 될까요?(C89)
답 은 안 됩 니 다.
만약 파일 이. cpp 로 저 장 된 것 이 가능 하 다 면, C + + 는 이러한 쓰 기 를 지원 합 니 다.
우 리 는 Left (Left (node) 를 끼 워 넣 을 수 있 습 니 다. 왼쪽 값 으로 할 수 없습니다.2. C89 에서 모든 변 수 는 구문 블록 맨 앞 에 정의 되 어야 한다. 그렇지 않 으 면 오 류 를 보고 할 수 있다. 그 전에 사 용 했 던 경량급 Dev C + 개발 환경 컴 파일 러 GCC 4.8.1 은 좀 더 시원 하 게 쓰 여 있 지만 디 버 거 는 너무 간단 하고 VS 디 버 거 는 매우 강력 하 다. 이 는 프로그램의 구 조 를 이해 하 는 데 유리 하 다.비록 그것 의 오래된 문법 은 그다지 인성 적 이지 않 지만.뭐 공부 해요?
KEIL 4 로 끼 워 넣 는 프로그램 을 쓸 때. 예 를 들 어 int config lcd (); 이러한 성명 은 경고 가 있 을 것 입 니 다. 이것 은 더욱 엄격 합 니 다.
int config lcd (void) 는 경고 하지 않 았 습 니 다. int main () {}, void main () {} 은 안 됩 니 다. int main (void) 이 표준 입 니 다.
3. 가끔 이렇게 쓴다
GCC 는 통과 할 수 있 지만 약간 급진 적 이다.
물론 이런 것들 은 많은 책 에서 말 할 수 있 지만, 이 일 을 몸소 해 야 자신 이 이런 문제 에 부 딪 혀 야 더욱 깊이 이해 할 수 있다 는 것 을 절대 알 고 있다.
다음은 빨 간 검 은 나무의 코드 입 니 다.
red black tree. h 파일
Left( node )->left = Nil;
red black tree. c 파일
void counting_sort(char *source , char * des, int k )
{
char c[k];
..... ....
}
테스트 코드 main. c
4. 567913. 디 버 깅 상태 에서 우 리 는 빨 간 검 은 나무의 구 조 를 볼 수 있다.
1 ~ 9 붉 은 검 은 나무 한 그루 삽입
4b
/ \
2r 6r
/ \ / \ 1b 3b 5b 8b
/ \
7r 9r
검 붉 은 나무의 성질 에 맞다.
기타 함수 도 기능 을 실현 하 였 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.