|
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"home.h"
void createtree(treeNode* p)
{
homeList fam;
int i;
printf("请输入家庭成员的基础信息\n");
printf("姓名:");
scanf("%s",fam.name);
printf("\n");
printf("性别:");
scanf("%s",&(fam.sex));
printf("\n");
printf("配偶:");
scanf("%s",fam.spouse);
printf("\n");
printf("-----------------------\n");//输入成员信息
p = (treeNode*)malloc(sizeof(treeNode));
p->firstchild = NULL;
p->nextsibling = NULL; //分配空间
if( !p )
return ;
memcpy(&(p->data),&fam,sizeof(homeList));
do{
printf("%s是否有孩子\n",fam.name);
printf("是:1,否:0\n");
scanf("%d",&i);
switch( i )
{
case 0:break;
case 1:createtree(p->firstchild);break;
default:printf("输入错误,请重新输入");
}
}while(i != 0 && i != 1); //输入孩子节点
do{
printf("%s是否有未存入的兄弟\n",fam.name);
printf("是:1,否:0\n");
scanf("%d",&i);
switch(i)
{
case 0:break;
case 1:createtree(p->nextsibling);break;
default:printf("输入错误,请重新输入");
}
}while(i != 0 && i != 1); //输入兄弟节点
}
void Locatetree(treeNode*p,char nam[20])//查找节点
{
homeList fam;
memcpy(&(fam),&(p->data),sizeof(homeList));
printf("%s",fam.name);
if (p!=NULL)
{
if(strcmp(p->data.name , nam) == 0)
{
printf("查找到的数据为:");
printf("姓名:%s",fam.name);
printf("性别:%c",fam.sex);
printf("配偶:%s",fam.spouse); //输出查找到的节点
return ;
}
Locatetree(p->firstchild,nam);
if(p->firstchild != NULL)
{
p = p->firstchild;
return ;
}
Locatetree(p->nextsibling,nam);
if(p->nextsibling != NULL)
{
p = p->nextsibling;
return;
}
printf("未找到该成员");
}
}
void Addtree(treeNode* p){//加入新节点
treeNode* temp = p;
char nam[20];
printf("请输入需要添加的成员父母的姓名:");
scanf("%s",nam);
printf("\n");
Locatetree(temp,nam);
treeNode*a = ( treeNode* )malloc(sizeof(treeNode));
homeList fam;
printf("请输入家庭成员的基础信息\n");
printf("姓名:");
scanf("%s",fam.name);
printf("\n");
printf("性别:") ;
scanf("%s",&(fam.sex));
printf("\n");
printf("配偶:");
scanf("%s",fam.spouse);
printf("\n");
printf("-----------------------\n");
memcpy(&(a->data),&fam,sizeof(homeList));
a->firstchild = NULL ;
a->nextsibling = NULL ;
if(temp->firstchild!=NULL)
temp->firstchild = a;
else
temp = temp->firstchild;
while( temp )
{
temp = temp->nextsibling;
}
temp->nextsibling = a;
}
他显示c:\users\lenovo\desktop\test\family1\family1\familytree.c(5): error C2143: 语法错误 : 缺少“)”(在“*”的前面)
1>c:\users\lenovo\desktop\test\family1\family1\familytree.c(5): error C2143: 语法错误 : 缺少“{”(在“*”的前面)
1>c:\users\lenovo\desktop\test\family1\family1\familytree.c(5): error C2059: 语法错误:“)”
1>c:\users\lenovo\desktop\test\family1\family1\familytree.c(6): error C2054: 在“p”之后应输入“(” |
上一篇: 为什么我写的归并算法这么慢,帮看看问题所在下一篇: html转图片
|