검색어 입력폼
평가점수A

[자료구조 자료구조] Leftist Tree

등록일 2004.06.25 파일확장자압축파일 (zip) | 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

참고 자료

없음
다운로드 맨위로