[자료구조 자료구조] Leftist Tree
- 최초 등록일
- 2004.06.25
- 최종 저작일
- 2004.06
- 7페이지/ 압축파일
- 가격 1,000원
소개글
C로 구현한 Leftist Tree 입니다.
Leftist tree combine function을 이용하여 노드의 삽입/삭제를 구현하였습니다.
컴파일 실행환경
총 7파일
Leftist.dsp
Leftist.c
Leftist.dsw
Leftist.exe
Leftist.ncb
Leftist.opt
Leftist.plg
본문내용
======== 소스 일부 내용 =========
typedef struct {
int key;
} element;
// leftist의 리스트 표현을 위한 구조체
typedef struct leftist *leftist_tree;
typedef struct leftist {
leftist_tree left_child;
element data;
leftist_tree right_child;
int shortest;
};
leftist_tree ptr = NULL; // 루트 포인터
void SWAP(leftist_tree *a, leftist_tree *b, leftist_tree temp); // 두개의 구조체 교환
void min_combine(leftist_tree *a, leftist_tree *b); // 결합 연산 전단계
void min_union (leftist_tree *a, leftist_tree *b); // 결합 수행
int menu(); // 메뉴 선택
void preInsert(); // 삽입 연산 전단계
void preDelete(); // 삭제 연산 전단계
void insert(leftist_tree *ptr, int inputData); // 삽입 연산
void delete_root(); // 삭제 연산
int key_get(); // 키 값 얻어온다.
void key_put(int delete_value); // 키 값 반환
void printing(); // 인쇄
void inorder(leftist_tree ptr); // 중위순회
void preorder(leftist_tree ptr); // 전위순회
void postorder(leftist_tree ptr); // 후위순회
char keyArray[MAX_NUM+1]; // 중복되지 않는 랜덤을 생성하기 위한 키배열
int nElement = 0; // 노드의 개수
void main() {
int i;
srand((unsigned)time(NULL));
keyArray[0] = '*'; // 배열의 0번은 사용하지 않는다.
for(i=1; i<=MAX_NUM; i++) keyArray[i] = i; // 랜덤키배열을 초기화
menu(); // 메뉴 실행
printf("\n ---------------------------- End ---------------------------- \n");
}
압축파일 내 파일목록
Leftist.dsp
Leftist.c
Leftist.dsw
Leftist.exe
Leftist.ncb
Leftist.opt
Leftist.plg
참고 자료
없음