题意:给出两条链表的首地址以及若干节点的地址,数据,下一个节点的地址,求两条链表的首个共用节点的地址。如果两条链表没有共用节点,则输出-1。
思路
步骤1:由于地址的范围很小,因此可以直接用静态链表,但是依照题目的要求,在结
点的结构体中再定义一个int型变量flag,表示结点是否在第一条链表中出现,是则为l,不
是为 - 1。
步骤2:由题目给出的第一条链表的首地址出发遍历第一条链表,将经过的所有结点的
flag值赋为1.
接下来枚举第二条链表,当出现第一个fag值为1的结点,说明是第一条链表中出现过
的结果,即为两条链表的第一个共用结点。
如果第二条链表枚举完仍然没有发现共用结点,则输出 - 1。
注意点
①使用 % 05d格式输出地址,可以使不足5位的整数的高位补0
②使用map容易超时。
seanf使用 % c格式时是可以读入空格的,因此在输入地址、数据、后继结点地址的(注释:前面有空格,表示读一字符前要跳过 前面 所有 的空白字符(空格,表格键,回车换行键等,有多少跳多少)后才读入1个实质性的 (字母数字符号)字符)
格式不能写成 % d % c % d,必须在中间加空格。
输入样例
11111 22222 9
67890 i 00002
00010 a 12345
00003 g - 1
12345 D 67890
00002 n 00003
22222 B 23456
11111 L 00001
23456 e 67890
00001 o 00010
输出样例
67890

#include<cstdio>
#include<cstring>
const int maxn = 100010;
struct Node {
char data;
int next;
bool flag;
}node[maxn];
int main() {
int s1, s2, n;
scanf("%d%d%d", &s1, &s2, &n);
int address,next;
char data;
for (int i = 0; i < n; i++) {
scanf("%d %c %d", &address, &data, &next);
node[address].data = data;
node[address].next = next;
}
int x;
for (x = s1; x != -1;x=node[x].next) {
node[x].flag = true;
}
for (x = s2; x != -1; x = node[x].next) {
if (node[x].flag == true) {
break;
}
}
if (x != -1) {
printf("%05d", x);
}
else {
printf("-1");
}
return 0;
}

PAT A1032 Sharing的更多相关文章

  1. PAT甲级——A1032 Sharing

    To store English words, one method is to use linked lists and store a word letter by letter. To save ...

  2. PAT 1032 Sharing[hash][链表][一般上]

    1032 Sharing (25)(25 分) To store English words, one method is to use linked lists and store a word l ...

  3. A1032. Sharing

    To store English words, one method is to use linked lists and store a word letter by letter. To save ...

  4. PAT 1032. Sharing

    其实就是链表求交: #include <iostream> #include <cstdio> #include <cstdlib> #include <un ...

  5. PAT 1003 Sharing (25)

    题目描写叙述 To store English words, one method is to use linked lists and store a word letter by letter. ...

  6. PAT-链表-A1032 Sharing

    题意:给出两条链表的首地址以及若干个节点的的地址.数据.下一个节点的地址,求两条链表的首个共用节点的地址.如果两条链表没有共用节点,则输出-1. 思路:使用静态链表,首先遍历一遍第一个链表并进行标记. ...

  7. PAT 1032 Sharing (25分) 从自信到自闭

    题目 To store English words, one method is to use linked lists and store a word letter by letter. To s ...

  8. PAT甲级题解分类byZlc

    专题一  字符串处理 A1001 Format(20) #include<cstdio> int main () { ]; int a,b,sum; scanf ("%d %d& ...

  9. 【PAT】1032 Sharing (25)(25 分)

    1032 Sharing (25)(25 分) To store English words, one method is to use linked lists and store a word l ...

随机推荐

  1. Baidu Apollo use: command " rosbag " not fonud

    https://github.com/ApolloAuto/apollo/issues/181 1.If using dev docker env, you need run apollo.sh bu ...

  2. Github Action 快速上手指南

    前言 各位读者,新年快乐,我是过了年匆忙赶回上海努力搬砖的蛮三刀. Github之前更新了一个Action功能(应该是很久以前了),可以实现很多自动化操作.用来替代用户自己设置的自动化脚本(比如:钩子 ...

  3. 创建一个springboot项目

    进入https://start.spring.io/ 再点击GENERATE,下载解压即可 注意配置好阿里云的仓库镜像,免得依赖无法下载 不下载最新版springboot是因为我在测试中遇到了问题,貌 ...

  4. 解决springBoot上传大文件异常问题

    上传文件过大时的报错: org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size ex ...

  5. CentOS7安装Kafka2.6.0

    1:下载 wget https://mirror.bit.edu.cn/apache/kafka/2.6.0/kafka_2.12-2.6.0.tgz 点击前往官网 2:解压 tar -zxvf ka ...

  6. Go的指针

    目录 指针 一.指针的声明 二.指针的默认值(Zero Value) 三.指针的解引用 四.向函数传递指针参数 1.非 数组/切片 指针传参 2.数组/切片 指针传参 五.Go不支持指针运算 指针 指 ...

  7. 【随便写写】印象笔记,WordPress,CSDN 等 写博客的不同

    之前有的文章,写在了印象笔记里面,有的文章,写在了自己的WordPress博客里面,但是,感觉还是需要在主流平台分享一下文章的.就再次写写文章吧.(PS:公众号最重要的不是写作,而是排版) 说说几个这 ...

  8. HTTP 请求URL中不能含有空格

    如果含有空格 会报 不合法参数异常 正确做法是将其encode URLEncoder.encode(targetString, "utf-8").replaceAll(" ...

  9. 后端程序员之路 35、Index搜索引擎实现分析4-最终的正排索引与倒排索引

    # index_box 提供搜索功能的实现- 持有std::vector<ITEM> _buffer; 存储所有文章信息- 持有ForwardIndex _forward_index;  ...

  10. CSS:CSS基础

    和 HTML 类似,CSS 也不是真正的编程语言,甚至不是标记语言.它是一门样式表语言,这也就是说人们可以用它来选择性地为 HTML 元素添加样式. CSS规则集 选择器(Selector):元素的名 ...