#include <stdio.h>
#include <stdlib.h>
struct Node
{
int data;
struct Node* lChild;
struct Node* rChild;
};
struct Node* initTree()
{
struct Node* tree[10];
int i;
for(i=0;i<10;i++)
{
tree[i]=(struct Node*)malloc(sizeof(struct Node));
tree[i]->lChild=NULL;
tree[i]->rChild=NULL;
tree[i]->data=(char)i;
}
for(i=0;i<=2;i++)
{
tree[i]->lChild=tree[2*i+1];
tree[i]->rChild=tree[2*i+2];
}
tree[3]->lChild=tree[7];
tree[5]->rChild=tree[8];
return tree[0];
}
int PrintNodeAtLevel(struct Node* root, int level)
{
if(!root || level < 0)
{
return 0;
}
if(level == 0)
{
printf("%d ", root -> data);
return 1;
}
return PrintNodeAtLevel(root -> lChild, level - 1) + PrintNodeAtLevel(root -> rChild, level - 1);
}
/*void PrintNodeByLevel(struct Node* root, int depth)
{
int level;
for(level = 0; level < depth; level++)
{
PrintNodeAtLevel(root, level);
printf("\n");
}
}*/
void PrintNodeByLevel(struct Node* root)
{
int level;
for(level = 0; ; level++)
{
if(!PrintNodeAtLevel(root, level))
{
break;
}
printf("\n");
}
}
int main()
{
PrintNodeByLevel(initTree());
return 0;
}
#include <stdlib.h>
struct Node
{
int data;
struct Node* lChild;
struct Node* rChild;
};
struct Node* initTree()
{
struct Node* tree[10];
int i;
for(i=0;i<10;i++)
{
tree[i]=(struct Node*)malloc(sizeof(struct Node));
tree[i]->lChild=NULL;
tree[i]->rChild=NULL;
tree[i]->data=(char)i;
}
for(i=0;i<=2;i++)
{
tree[i]->lChild=tree[2*i+1];
tree[i]->rChild=tree[2*i+2];
}
tree[3]->lChild=tree[7];
tree[5]->rChild=tree[8];
return tree[0];
}
int PrintNodeAtLevel(struct Node* root, int level)
{
if(!root || level < 0)
{
return 0;
}
if(level == 0)
{
printf("%d ", root -> data);
return 1;
}
return PrintNodeAtLevel(root -> lChild, level - 1) + PrintNodeAtLevel(root -> rChild, level - 1);
}
/*void PrintNodeByLevel(struct Node* root, int depth)
{
int level;
for(level = 0; level < depth; level++)
{
PrintNodeAtLevel(root, level);
printf("\n");
}
}*/
void PrintNodeByLevel(struct Node* root)
{
int level;
for(level = 0; ; level++)
{
if(!PrintNodeAtLevel(root, level))
{
break;
}
printf("\n");
}
}
int main()
{
PrintNodeByLevel(initTree());
return 0;
}