svdanik
15-11-2010, 20:17
Есть такое дерево
struct node
{
int data;
char data_s[256];
struct node *left, *right;
};
typedef struct node node;
void insert(node *new_leaf,node *root);
node *root=NULL;
node *new_leaf=NULL ;
node *c=NULL;
char temp[256];
void main(void)
{
printf(" Enter the elements of the tree (type 0 to exit) \n");
while(1)
{
scanf("%255s",temp);
if(*(temp)=='0')
break;
new_leaf=(node*)malloc(sizeof(node));
new_leaf->left=new_leaf->right = NULL;
new_leaf->data=strlen(temp);
sprintf(new_leaf->data_s,"%s",temp);
if( root == NULL)
root=new_leaf;
else
insert(new_leaf,root);
};
}
void insert(node *new_leaf,node *root)
{
if( new_leaf->data>root->data)
{
if( root->right == NULL)
root->right=new_leaf;
else
insert( new_leaf,root->right);
};
if( new_leaf->data <= root->data)
{
if( root->left == NULL)
root->left = new_leaf;
else
insert( new_leaf,root->left);
};
}
Вопрос такой: как вывести на екран все правые вершыни?
struct node
{
int data;
char data_s[256];
struct node *left, *right;
};
typedef struct node node;
void insert(node *new_leaf,node *root);
node *root=NULL;
node *new_leaf=NULL ;
node *c=NULL;
char temp[256];
void main(void)
{
printf(" Enter the elements of the tree (type 0 to exit) \n");
while(1)
{
scanf("%255s",temp);
if(*(temp)=='0')
break;
new_leaf=(node*)malloc(sizeof(node));
new_leaf->left=new_leaf->right = NULL;
new_leaf->data=strlen(temp);
sprintf(new_leaf->data_s,"%s",temp);
if( root == NULL)
root=new_leaf;
else
insert(new_leaf,root);
};
}
void insert(node *new_leaf,node *root)
{
if( new_leaf->data>root->data)
{
if( root->right == NULL)
root->right=new_leaf;
else
insert( new_leaf,root->right);
};
if( new_leaf->data <= root->data)
{
if( root->left == NULL)
root->left = new_leaf;
else
insert( new_leaf,root->left);
};
}
Вопрос такой: как вывести на екран все правые вершыни?