목차
#5 - 최소 힙(배열).c 2.71KB
#5 - 최소 힙(트리(연결리스트)).c 7.37KB
#5 - 최소 힙(트리(연결리스트)).c 7.37KB
본문내용
#include
#include
typedef struct{
int key;
}Bucket;
void downHeap(Bucket** heap); // 삭제 후 트리 수정
void upHeap(Bucket** heap); // 삽입 후 트리 수정
void insertNode(Bucket** heap,int key); // 트리에 노드 삽입
int removeMinKey(Bucket** heap); // 트리에서 가장 작은 키값을 가지는 노드 삭제
int arrSize = 10;
int last = -1;
void main(){
// 힙 생성
Bucket** heap = (Bucket**)malloc(sizeof(Bucket*) * arrSize);
int action,key,i;
// 힙 초기화
for(i = 0; i < arrSize; i++)
heap[i] = NULL;
while(1){
printf("입력 1, 출력 2, 삭제 3, 종료 4 : ");
scanf("%d",&action);
while(action != 1 && action != 2 && action != 3 && action != 4){
printf("입력 1, 출력 2, 삭제 3, 종료 4 : ");
scanf("%d",&action);
}
if(action == 1){
printf("삽입할 키 입력 : ");
scanf("%d",&key);
insertNode(heap,key);
}
else if(action == 2){
if(heap[0] == NULL)
printf("힙이 비어있습니다.\n");
else{
i = 0;
while(heap[i] != NULL)
printf("%d ",heap[i++]->key);
printf("\n");
#include
typedef struct{
int key;
}Bucket;
void downHeap(Bucket** heap); // 삭제 후 트리 수정
void upHeap(Bucket** heap); // 삽입 후 트리 수정
void insertNode(Bucket** heap,int key); // 트리에 노드 삽입
int removeMinKey(Bucket** heap); // 트리에서 가장 작은 키값을 가지는 노드 삭제
int arrSize = 10;
int last = -1;
void main(){
// 힙 생성
Bucket** heap = (Bucket**)malloc(sizeof(Bucket*) * arrSize);
int action,key,i;
// 힙 초기화
for(i = 0; i < arrSize; i++)
heap[i] = NULL;
while(1){
printf("입력 1, 출력 2, 삭제 3, 종료 4 : ");
scanf("%d",&action);
while(action != 1 && action != 2 && action != 3 && action != 4){
printf("입력 1, 출력 2, 삭제 3, 종료 4 : ");
scanf("%d",&action);
}
if(action == 1){
printf("삽입할 키 입력 : ");
scanf("%d",&key);
insertNode(heap,key);
}
else if(action == 2){
if(heap[0] == NULL)
printf("힙이 비어있습니다.\n");
else{
i = 0;
while(heap[i] != NULL)
printf("%d ",heap[i++]->key);
printf("\n");
소개글