PAT A1032 Sharing
题意:给出两条链表的首地址以及若干节点的地址,数据,下一个节点的地址,求两条链表的首个共用节点的地址。如果两条链表没有共用节点,则输出-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的更多相关文章
- PAT甲级——A1032 Sharing
To store English words, one method is to use linked lists and store a word letter by letter. To save ...
- PAT 1032 Sharing[hash][链表][一般上]
1032 Sharing (25)(25 分) To store English words, one method is to use linked lists and store a word l ...
- A1032. Sharing
To store English words, one method is to use linked lists and store a word letter by letter. To save ...
- PAT 1032. Sharing
其实就是链表求交: #include <iostream> #include <cstdio> #include <cstdlib> #include <un ...
- PAT 1003 Sharing (25)
题目描写叙述 To store English words, one method is to use linked lists and store a word letter by letter. ...
- PAT-链表-A1032 Sharing
题意:给出两条链表的首地址以及若干个节点的的地址.数据.下一个节点的地址,求两条链表的首个共用节点的地址.如果两条链表没有共用节点,则输出-1. 思路:使用静态链表,首先遍历一遍第一个链表并进行标记. ...
- PAT 1032 Sharing (25分) 从自信到自闭
题目 To store English words, one method is to use linked lists and store a word letter by letter. To s ...
- PAT甲级题解分类byZlc
专题一 字符串处理 A1001 Format(20) #include<cstdio> int main () { ]; int a,b,sum; scanf ("%d %d& ...
- 【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 ...
随机推荐
- BGV等 DeFi产品暴涨背后隐藏着什么?
比特币突破两万七千美金,在此创造了历史.在比特币一路飙升的背后,到底是谁注入了"强心针".笔者认为今年以来推动BTC长期上涨的主要动力主要包括四个:经济形势恶化.央行大量放水(主要 ...
- git笔记整理-learnGitBranching
声明 此篇文章内容是本人在 github上寻找到Peter Cottle的项目 https://github.com/pcottle/learnGitBranching.git 中学习git相关命令时 ...
- 亿级流量客户端缓存之Http缓存与本地缓存对比
客户端缓存分为Http缓存和本地缓存,使用缓存好处很多,例如减少相同数据的重复传输,节省网络带宽资源缓解网络瓶颈,降低了对原始服务器的要求,避免出现过载,这样服务器可以更快响应其他的请求 Http缓存 ...
- Java中Singleton的三种实现方式解析
一.什么是Singleton? <设计模式>的作者.Eclipse和 Junit 的开发者 Erich Gamma 在它的理论体系中将 Singleton 定义为仅仅被实例化一次的类.在当 ...
- 【Python】set 与 list ——如何对列表进行去重?
在Python中,形如 {1,2,3,4,5} 这样的数据类型叫做"集合",外形酷似列表list [1,2,3,4,5] 但是集合与列表有很多区别,具体表现在以下几方面: List ...
- 02_Mysql用户管理之Navicat下载及安装
Navicat可以说是最好的Mysql客户端管理软件了,本博客将带你完成Navicat的下载与安装. 1.下载(https://www.navicat.com.cn/products)
- 源码分析:Phaser 之更灵活的同步屏障
简介 Phaser 是 JDK 1.7 开始提供的一个可重复使用的同步屏障,功能类似于CyclicBarrier和CountDownLatch,但使用更灵活,支持对任务的动态调整,并支持分层结构来达到 ...
- 三种远程部署war包检测
简介 远程部署漏洞属于服务器.中间件配置问题,攻击者可通过远程部署漏洞获取系统权限,远程部署漏洞经常出现在Tomcat.Jboss.Weblogic等web容器之上. 0x01 ### tomcat部 ...
- Ribbon实现负载均衡时 服务提供者注册失败 原因之一
问题描述:提供者注册时总是不用自己配置的server.port 在project structuree中的模块总是自动添加别的模块的文件 那么一定要看看project structure中的langu ...
- Vue的学习总结之---Vue项目 前后端分离模式解决开发环境的跨域问题
原文:https://blog.csdn.net/localhost_1314/article/details/83623526 在前后端分离的web开发中,我们与后台联调时,会遇到跨域的问题. 比如 ...