본문내용
int *n)
{
int i, j;
element temp;
if(*n < 2){
fprintf(stderr, "The heap is empty\n");
deap[0].key = FALSE;
return deap[0];
}
deap[0] = deap[2];
temp = deap[(*n)--];
for(i=2 ; i*2 <= *n ; deap[i] = deap[j], i=j){
j = i*2;
if(j+1 <= *n){
if(deap[j].key > deap[j+1].key)
j++;
}
}
modified_deap_insert(deap, i, temp);
return deap[0];
}
void modified_deap_insert(element deap[], int n, element x)
{
int i;
n++;
if(n == MAX_SIZE){
fprintf(stderr, "The heap is full\n");
exit(1);
}
if(n == 2)
deap[2] = x;
else switch(max_heap(n)){
case FALSE :
i = max_partner(n);
if(x.key > deap[i].key){
deap[n] = deap[i];
max_insert(deap,i,x);
}
else
min_insert(deap,n,x);
break;
case TRUE :
i = min_partner(n);
if(x.key < deap[i].key){
deap[n] = deap[i];
min_insert(deap,i,x);
}
else
max_insert(deap,n,x);
break;
}
}
{
int i, j;
element temp;
if(*n < 2){
fprintf(stderr, "The heap is empty\n");
deap[0].key = FALSE;
return deap[0];
}
deap[0] = deap[2];
temp = deap[(*n)--];
for(i=2 ; i*2 <= *n ; deap[i] = deap[j], i=j){
j = i*2;
if(j+1 <= *n){
if(deap[j].key > deap[j+1].key)
j++;
}
}
modified_deap_insert(deap, i, temp);
return deap[0];
}
void modified_deap_insert(element deap[], int n, element x)
{
int i;
n++;
if(n == MAX_SIZE){
fprintf(stderr, "The heap is full\n");
exit(1);
}
if(n == 2)
deap[2] = x;
else switch(max_heap(n)){
case FALSE :
i = max_partner(n);
if(x.key > deap[i].key){
deap[n] = deap[i];
max_insert(deap,i,x);
}
else
min_insert(deap,n,x);
break;
case TRUE :
i = min_partner(n);
if(x.key < deap[i].key){
deap[n] = deap[i];
min_insert(deap,i,x);
}
else
max_insert(deap,n,x);
break;
}
}
키워드
추천자료
- 자바 자료구조 중간고사
- C언어로 구현한 행렬과 행렬의 곱 자료구조
- C로 짠 큐 구현 (자료구조 과제. 주석 있음)
- [자료구조]다항식 연산소스
- [자료구조] assignment -sparse matrix구현(희소행렬)-
- [자료구조]Linked List를 이용한 은행 고객 관리 프로그램
- [자료구조]배열을 이용한 다항식의 덧셈,곱셈
- [자료구조]이진탐색트리
- 2009년 2학기 자료구조 기말시험 핵심체크
- 2009년 2학기 자료구조 출석대체시험 핵심체크
- [조직구조론] Mintzberg의 조직구조론, Hall의 관료적 구조론
- [조직구조론] 조직의 구조와 조직구조의 특성지표
- [자료구조] linked list 이용하여 Queue 구현
- 디지털 시대의 여행사 수익증대전략 - 여행업,여행사수익증대,여행사전략,여행사분석,여행사...
소개글