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 · 265 阅读 · 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 · 38 阅读 · 0 评论