본문 바로가기

IT

tree

#include <stdio.h>

#include <stdlib.h>


char treeArray[16] = {'-', 'A', 'B', 'C', 'D', 'E', 'F', '-', 

'-', 'G', '-', '-', '-', 'H', '-', '-'};

char swapTreeArray[16];


void printTree()

{

int i = 0;

for(i = 0; i < sizeof(treeArray); i++)

{

printf("%d (%c), ", i, treeArray[i]);

}

printf("\n");

}


void printSwapTree()

{

int i = 0;

for(i = 0; i < sizeof(swapTreeArray); i++)

{

printf("%d (%c), ", i, swapTreeArray[i]);

}

printf("\n");

}



void countLeaf()

{

int i = 0, count = 0;

for(i = 0; i < sizeof(treeArray); i++)

{

char leftTemp = treeArray[2*i],

rightTemp = treeArray[2*i+1];

if(treeArray[i] > 65 && treeArray[i] < 90)

{

if(leftTemp < 65 || leftTemp > 90)

{

if(rightTemp < 65 || rightTemp > 90)

{

printf("%d번째 leaf node는 %d (%c)입니다.\n",++count, i, treeArray[i]);

}

}

}

}

if(!count)

{

printf("leaf node가 없습니다.\n");

}

}


void swapTree()

{

int i = 0, j = 0;

swapTreeArray[0] = treeArray[0];

swapTreeArray[1] = treeArray[1];

for(i = 1 ; i < 2 ; i++) // 2 level

{

swapTreeArray[2*i] = treeArray[2*i+1];

swapTreeArray[2*i+1] = treeArray[2*i];

}



for(i = 4, j = 7 ; i < 8 ; i++, j--) // 2 level

{

swapTreeArray[j] = treeArray[i];

}


for(i = 8, j = 15 ; i < 16 ; i++, j--) // 2 level

{

swapTreeArray[j] = treeArray[i];

}


printSwapTree();

}


void main()

{

printTree();

countLeaf();

swapTree();

}

'IT' 카테고리의 다른 글

linked list ?  (0) 2014.06.09
queue?? tree?? bsf 인가 ㅇㅈㅇ?  (0) 2014.06.09
data structure source code  (0) 2014.06.02
sub1.java  (0) 2014.05.17
sub2.java  (0) 2014.05.17