BTree(비트리)프로그램
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

BTree(비트리)프로그램에 대한 보고서 자료입니다.

목차

없음

본문내용

>fill_cnt = 1;
curr->link[1] = curr->link[0];
curr->link[0] = a_sis->link[2];
}
}
finish = TRUE;
}
else {// 형제노드가 1개일때..
if(parent->fill_cnt==2 && parent->link[1]==curr) {
// 좌측의 형제를 검사해본다.
max_left = parent->link[0];
if(max_left->fill_cnt==2) {
data_atob(parent, 0, curr, 0);
data_atob(max_left, 1, parent, 0);
max_left->rec[1].sn = -1;
max_left->fill_cnt = 1;
curr->link[1] = curr->link[0];
curr->link[0] = max_left->link[2];
curr->fill_cnt = 1;
break;
}
}
if(parent->fill_cnt==2) {// 부모가 2개의 데이터
if(parent->link[2]==curr) {// 3번째링크
data_atob(parent, 1, a_sis, 1);
parent->rec[1].sn = -1;
parent->fill_cnt = 1;
a_sis->fill_cnt = 2;
a_sis->link[2] = curr->link[0];
}
else if(parent->link[1]==curr) { // 두번째링크
data_atob(parent, 1, curr, 0);
data_atob(a_sis, 0, curr, 1);
parent->rec[1].sn = -1;
parent->fill_cnt = 1;
curr->fill_cnt = 2;
curr->link[1] = a_sis->link[0];
curr->link[2] = a_sis->link[1];
}
else {// 첫 번째 링크
data_atob(parent, 0, curr, 0);
data_atob(a_sis, 0, curr, 1);
data_atob(parent, 1, parent, 0);
parent->link[1] = parent->link[2];
parent->fill_cnt = 1;
parent->rec[1].sn = -1;
curr->fill_cnt = 2;
curr->link[1] = a_sis->link[0];
curr->link[2] = a_sis->link[1];
free(parent->link[2]);
}
finish = TRUE;
}
else {// 부모의 데이터가 1개일때..
if(parent->link[0]==curr) {// 첫번째링크
data_atob(parent, 0, curr, 0);
data_atob(a_sis, 0, curr, 1);
curr->fill_cnt = 2;
parent->fill_cnt = 0;
curr->link[1] = a_sis->link[0];
curr->link[2] = a_sis->link[1];
free(a_sis);
}
else {// 두 번째 링크
data_atob(parent, 0, a_sis, 1);
a_sis->fill_cnt = 2;
a_sis->link[2] = curr->link[0];
parent->fill_cnt = 0;
free(curr);
}
if(top==-1) {// 작업한노드가 루트면
free(ptr);
ptr = curr;
finish = TRUE;
}
else curr = parent; // 루트가 아니면
}
}
}
}
}
}
nodeptr max_search(nodeptr max_left)// 왼쪽링크중 가장 큰값의 노드를 찾는다
{
while(max_left!=NULL) {
stack[++top] = max_left;// stack에 저장
if(max_left->link[0]==NULL) return max_left;
else if(max_left->fill_cnt==1) max_left = max_left->link[1];
else if(max_left->fill_cnt==2) max_left = max_left->link[2];
}
}
void data_atob(nodeptr a, int num1, nodeptr b, int num2)// 데이터를 복사해준다
{
strcpy(b->rec[num2].name, a->rec[num1].name);
b->rec[num2].sn = a->rec[num1].sn;
b->rec[num2].gpa = a->rec[num1].gpa;
}
  • 가격5,000
  • 페이지수9페이지
  • 등록일2013.07.30
  • 저작시기2013.7
  • 파일형식한글(hwp)
  • 자료번호#867647
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니