//如果没有输入N怎么办?int N =0while(scanf("%s%s%s",t1,t2,t3)==3){strcpy(ssd[N].n1,t1);strcpy(ssd[N].n2,t2);strcpy(ssd[N].n3,t3);
N++;}strcpy(tmp1,t1);strcpy(tmp2,t2);
//如果给定的数据没有指定根节点,如何自己寻找?#include<stdio.h>#include<stdlib.h>#include<string.h>struct a
{char s1[20];char s2[20];char s3[20];}input[100];int N =0;char str1[20];char str2[20];typedefstruct node
{char name[20];int layer;
node* parent;
node* lchild;
node* rchild;}Node,*Tree;intmain(){char t1[20],t2[20],t3[20];
N =0;while(scanf("%s%s%s",t1,t2,t3)==3){strcpy(input[N].s1,t1);strcpy(input[N].s2,t2);strcpy(input[N].s3,t3);
N++;}strcpy(str1,t1);strcpy(str2,t2);int i;/*
for(i = 0;i<N;i++)
{
printf("%s %s %s\n",input[i].s1,input[i].s2,input[i].s3);
}
*/char nameFather[20];strcpy(nameFather,input[0].s1);printf("%s\n",nameFather);
i =0;while(i != N){if(strcmp(nameFather,input[i].s2)==0){strcpy(nameFather,input[i].s1);//printf("1 %s\n",nameFather);
i =0;}elseif(strcmp(nameFather,input[i].s3)==0){strcpy(nameFather,input[i].s1);//printf("2 %s\n",nameFather);
i =0;}else{//printf("3 %d\n",i);
i++;}}printf("%s\n",nameFather);return0;}/*
IN:
Shu Ge Mei1
Ba Self Mei2
Ye Shu Ba
Ge Son1 Son2
Son2 Mei1
^Z
OUT:
Shu
Ye
*/