#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 |