![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT甲级 链表
PAT上遇到的链表问题
爱吃梦龙雪糕
这个作者很懒,什么都没留下…
展开
-
1161 Merging Linked Lists (25 分)
链表合并模板题,注意分清楚边界条件#include<bits/stdc++.h>using namespace std;struct Node{ int data,ad,next;}node[100100];vector<Node>p1,p2,p3;int main(){ int f1,f2,n,ad,data; cin>>f1>>f2>>n; for(int i=0;i<n;i++){原创 2021-09-11 09:36:48 · 269 阅读 · 0 评论 -
1032 Sharing (25 分)
链表问题,坑点如下1,这题我采用的方法是设置point变量记录指向该结点的箭头个数,并用cmp函数得到第一个结点2,scanf的%c可以读入空格,因此在读入时不能写成%d%c%d,开始由于没有注意一直显示运行超时,修改后成功通过代码如下#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=100010;struct Node{原创 2021-08-02 10:04:03 · 63 阅读 · 0 评论 -
1052 Linked List Sorting (25 分)
链表的重组排序问题,其中在测试点三和测试点四卡的时间较久坑点如下1,读入链表时注意将无效节点排除,本题我用的是order排序的方法,另有flag排序的方法,注意灵活运用2,开始显示测试点三答案错误,后来经排查发现是由于第一个地址没有%05d输出造成的,修改后成功通过3,测试点四考察有效节点数为0的情况,此时需单独判定完整代码如下#include<cstdio>#include<cstring>#include<algorithm>using namesp原创 2021-08-02 12:10:31 · 108 阅读 · 0 评论 -
1074 Reversing Linked List (25 分)
反转链表问题,属于容易忘记的一类题型坑点如下1,链表的生成模板结构体struct Node{ int data; int address; int next; int order;}node[maxn];读入数据for(int i=0;i<n;i++){ scanf("%d",&address); scanf("%d%d",&node[address].data,&node[address].next);原创 2021-08-01 17:45:20 · 52 阅读 · 0 评论 -
1097 Deduplication on a Linked List (25 分)
链表的去重问题,一开始没理解透彻题目意思,只做了一半出来。坑点如下1,首先排除无效结点2,这题由于存在两个链表要输出,我采用的方法是分别用order1和order2标记两个链表的各自序号,并用cmp函数将其排序后输出;代码如下#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int maxn=100010;const int maxl=10010;原创 2021-08-02 15:48:37 · 62 阅读 · 0 评论 -
1133 Splitting A Linked List (25 分)
链表处理问题。坑点如下1,注意链表的结构struct Node{ int id; int data; int next; int code;}node[maxn]; 2,链表的处理方式,对结构体按序号进行排序bool cmp(Node a,Node b){ return a.code<b.code;}整体代码如下#include<cstdio>#include<algorithm>#include<vect原创 2021-08-26 09:08:05 · 41 阅读 · 0 评论