标签:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct node
{
char data;
int next;
bool tag;
}Node[100066];
int main()
{
int add1,add2,n; //连表1首地址,
scanf("%d%d%d",&add1,&add2,&n);
memset(Node,0,sizeof(Node));
char tmp;
int from,to;
for(int i=0 ; i<n ; ++i) //先把所有结点存入
{
scanf("%d %c %d",&from,&tmp,&to);
Node[from].data=tmp;
Node[from].next=to;
}
int p;
for(p=add1 ; p!=-1 ; p=Node[p].next) //【思维】从表1首地址出发,到-1,经过的就是表1所有节点
{
Node[p].tag=1;
}
for(p=add2 ; p!=-1 ; p=Node[p].next) //表1到-1走完了,从表2首地址开始,沿着next一直到头
{
if(Node[p].tag==1) //中途有碰到和表一一样的节点,就停止,p记录的就是这个相同结点地址
break;
}
if(p!=-1) //有地址,按5位格式输出
printf("%05d",p);
else //没有地址,输出-1
printf("-1");
//system("pause");
return 0;
}
标签:
原文地址:http://www.cnblogs.com/Evence/p/4314773.html