PAT——A1032 Sharing(静态链表)

题目链接:

#include<utility>
#include<iostream>
#include<stdio.h>
#include<string>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define maxn 100010
struct node{
 int data;
 int next;
 bool flag;
}Node[maxn];
int main()
{
    for(int i=0;i<maxn;i++)
    {
        Node[i].flag=false;
    }
    int s1,s2,n;
    scanf("%d%d%d",&s1,&s2,&n);
    char data;
    int address,next;
    while(n--)
    {
        scanf("%d %c %d",&address,&data,&next);
        Node[address].data=data;
        Node[address].next=next;
    }
    int p;
    for(p=s1;p!=-1;p=Node[p].next)
    {
        Node[p].flag=true;
    }
    for(p=s2;p!=-1;p=Node[p].next)
    {
        if(Node[p].flag==true)
        {
            break;
        }
    }
    if(p!=-1)
    {
        printf("%05d\n",p);
    }
    else
        printf("-1\n");
    return 0;
}

【题意】

就是给出两串链表的首地址

然后分别给出两个各个结点的地址 值 下一个结点的地址

要我们找到第一个重复出现的地址(在两个字串中)

【分析】

首先要知道-1就是结束

因为地址很小

可以用静态链表

还要注意输入%c时碰到空格也算是输入

所以要注意格式 自己加上空格

扫描二维码关注公众号,回复: 2946573 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_42232118/article/details/82111027
今日推荐