家谱处理 pta
来源:互联网 发布:mac需要重装系统吗 编辑:程序博客网 时间:2024/06/04 22:21
//可以用树处理
//可以用结构图处理
//重点处理 各种关系
#include<bits/stdc++.h>
using namespace std;
struct node
{
char data[20];
int num,parent;
} tree[1010];
int main()
{
char name[1250],a[20];
int n,m,l,x,k;
scanf("%d %d",&n,&m);
getchar();
for(int i=0; i<n; i++)
{
gets(name);
l=strlen(name);
x=k=0;
for(int j=0; j<l; j++)
{
if(name[j]==' ')
x++;
else
a[k++]=name[j];
}
a[k]='\0';
strcpy(tree[i].data,a);
tree[i].num=x;
}
char w[10][20];
while(m--)
{
for(int i=0; i<6; i++)
{
scanf("%s",w[i]);
}
int p,q,x1,x2;
for(int i=0; i<n; i++)
{
if(strcmp(tree[i].data,w[0])==0)
{
p=tree[i].num;
x1=i;
}
if(strcmp(tree[i].data,w[5])==0)
{
q=tree[i].num;
x2=i;
}
}
if(strcmp(w[3],"child")==0)
{
if(p-q==2&&x1>x2)
{
int z=0;
for(int i=x2+1; i<=x1; i++)
{
if(tree[i].num<=q)
z=1;
}
if(z)
printf("False\n");
else
printf("True\n");
}
else
printf("False\n");
}
else if(strcmp(w[3],"parent")==0)
{
if(q-p==2&&x1<x2)
{
int z=0;
for(int i=x1+1; i<=x2; i++)
{
if(tree[i].num<=p)
z=1;
}
if(z)
printf("False\n");
else
printf("True\n");
}
else
printf("False\n");
}
else if(strcmp(w[3],"sibling")==0)//xiongdi
{
if(p==q)
{
int z=0;
if(x1>x2)
{
z=x1;
x1=x2;
x2=z;
}
z=0;
for(int i=x1; i<=x2; i++)
{
if(tree[i].num<p)
z=1;
}
if(z)
printf("False\n");
else
printf("True\n");
}
else
printf("False\n");
}
else if(strcmp(w[3],"descendant")==0)//houdai
{
if(p-q>=2&&x1>x2)
{
int z=0;
for(int i=x2+1; i<=x1; i++)
{
if(tree[i].num<=q)
z=1;
}
if(z)
printf("False\n");
else
printf("True\n");
}
else
printf("False\n");
}
else if(strcmp(w[3],"ancestor")==0)//zuxian
{
if(q-p>=2&&x1<x2)
{
int z=0;
for(int i=x1+1; i<=x2; i++)
{
if(tree[i].num<=p)
z=1;
}
if(z)
printf("False\n");
else
printf("True\n");
}
else
printf("False\n");
}
}
return 0;
}
0 0
- 家谱处理 pta
- PTA 家谱处理
- PTA 家谱处理
- PTA 7-2 家谱处理
- pta 习题集5-17 家谱处理
- PTA 4-5 家谱处理(建树做法)
- PTA 7-2 家谱处理——模拟
- 家谱处理
- 家谱处理
- PAT4-05. 家谱处理
- pat 家谱处理
- pat 家谱处理
- 家谱处理(30 分)
- 家谱处理(30 分)
- 家谱处理(30 分)
- 家谱
- 家谱
- 家谱
- 浅谈Android中用到的设计模式
- 学习c++的50条建议
- ffmpeg的tutorial中文版学习笔记(一)
- Groups of Live Templates
- 剑指offer_01_二维数组中的查找
- 家谱处理 pta
- 阶乘之和
- csdn如何转载别人的文章
- -bash: pod: command not found 系统升级后CocoaPods 出现的问题
- Creating and Editing Live Templates
- Animation 技巧分析 获取动画中的控件的实时frame
- 数据类型转换
- ffmpeg的tutorial中文版学习笔记(二)
- Beyond Compare文本合并有哪些快捷键