노드 구조체
트리에 있는 노드 하나 하나에 대한 형식입니다.
자료형은 'BinNode'입니다.
※ 트리 전체에 대한 형식은 필요 없습니다.
함수 01 AllocBinNode - 노드 생성
노드 1개 크기의 공간을 생성한 뒤, 이 노드를 가리키는 포인터를 반환합니다.
함수 02 SetBinNode - 노드 값 설정
노드 n에 넣고 싶은 값(데이터 x, 왼쪽 자식 노드에 대한 포인터 left, 오른쪽 자식 노드에 대한 포인터 right)를 넣습니다.
함수 03 Search - 원하는 데이터 검색
p를 루트 노드로 하는 트리에서 데이터 x가 있는 노드를 찾아, 그 노드에 대한 포인터를 반환합니다.
함수 04 Add - 노드 삽입
p를 루트 노드로 하는 트리에 데이터 x를 삽입한 후, 삽입한 노드에 대한 포인터를 반환합니다.
함수 05 Remove - 노드 삭제
root를 루트 노드로 하는 트리에서 데이터 x를 찾아 삭제하되, 삭제에 실패하면 -1을, 성공하면 0을 반환합니다.
※ 루트 노드의 자료형이 BinNode**인 것은 루트만 있는 트리에서 루트를 삭제할 경우, 루트 포인터를 NULL로 업데이트하기 때문
함수 06 PrintTree - 모든 노드 출력
p를 루트 노드로 하는 트리에서 모든 노드를 오름차순(중위 순회)으로 출력합니다.
함수 07 FreeTree - 트리 초기화
p를 루트 노드로 하는 트리에서 모든 노드를 후위 순회하며 삭제합니다.
728x90
반응형
'Algorithm > 이론' 카테고리의 다른 글
(C언어) 집합 by 비트 벡터 (0) | 2021.09.29 |
---|---|
(C언어) 집합 by 배열 (0) | 2021.09.29 |
(C언어) 원형 이중 연결 리스트 (0) | 2021.09.29 |
(C언어) 연결 리스트 by 커서 (0) | 2021.09.29 |
(C언어) 연결 리스트 by 포인터 (0) | 2021.09.29 |