본문 바로가기

IT

런이라는 단어가 있는걸로 봐서 위너트리

#include<stdio.h>

#include<stdlib.h>


#define MAX_SIZE 200

#define RUN 8

typedef struct node{

int data,index;

}node;


int result[MAX_SIZE];

node tree[MAX_SIZE];

int num[MAX_SIZE][RUN];





node compare(node a, node b)

{


if(a.data<=b.data)

return a;

else if(a.data>b.data)

return b;

else if(b.data ==NULL)

return a;

else if(a.data ==NULL)

return b;


}



void input(){


int i,j,k=0;


for(i=0; i<14; i++){

if((i==0) || (i%2==0))

{

for(j=0; j<RUN; j++){

if(k<101){

num[i][j]=k;

k++;

}

else

num[i][j]=999;

}

}

else if(i%2 ==1)

{

for(j=RUN-1; j>=0; j--){


num[i][j]=k;

k++;

}


}

}

printf("RUN  출력\n");

for(i=0; i<13; i++){

for(j=0; j<RUN; j++){

if(num[i][j]<101)

printf("%-4d", num[i][j]);

}

printf("\n");

}

printf("\nRUN 배열 출력\n");

for(j=0; j<RUN; j++){

printf("run%-2d  ",j);

for(i=0; i<13; i++){

if(num[i][j]<101)

printf("%-4d", num[i][j]);

}

printf("\n");

}

}


void search(){

int i=1,j=0,k=8;

int i0=0,i1=0,i2=0, i3=0, i4=0, i5=0, i6=0, i7=0;

int arr[7]={0};



while(i<=101){


tree[8].data=num[i0][j];

tree[8].index= j++;

tree[9].data=num[i1][j];

tree[9].index= j++;


tree[10].data=num[i2][j];

tree[10].index= j++;


tree[11].data=num[i3][j];

tree[11].index= j++;


tree[12].data=num[i4][j];

tree[12].index= j++;


tree[13].data=num[i5][j];

tree[13].index= j++;


tree[14].data=num[i6][j];

tree[14].index= j++;


tree[15].data=num[i7][j];

tree[15].index= j++;


j=7;

for(k=7; k>0; k--,j--){

tree[k]=compare(tree[2*k], tree[2*k+1]);

}

result[i++]=tree[1].data;

switch(tree[1].index){

case 0: i0++; break;

case 1: i1++; break;

case 2: i2++; break;

case 3: i3++; break;

case 4: i4++; break;

case 5: i5++; break;

case 6: i6++; break;

case 7: i7++; break;

}



}

printf("\nresult 출력\n");

for(i=1; i<=101; i++)

{

printf("%-4d", result[i]);


}

printf("\n");

}

void main(){


input();

search();

}

'IT' 카테고리의 다른 글

인설션 소트 시간 측정  (0) 2014.06.09
소팅 시간 측정  (0) 2014.06.09
인설션소트  (0) 2014.06.09
후위식변환3  (0) 2014.06.09
후위식변환2  (0) 2014.06.09