如果 单纯从做题角度来讲,上一个做法当然没问题,可是目的是为了练习静态链表,so还是不要投机取巧了,静态链表解法如下:

#include <stdio.h>
struct data
{int n;int next;} ss[100000];int find(int first);int reverse(int first,int sum,int k);void print(int first);int main(){int i,j;int first,sum,k;scanf("%d%d%d",&first,&sum,&k);for(i=0;i<sum;i++){scanf("%d",&j);scanf("%d%d",&ss[j].n,&ss[j].next);}sum=find(first);if(k>1){first=reverse(first,sum,k); }print(first);return 0;}int find(int first){int i=1;while(ss[first].next!=-1){first=ss[first].next;i++;}return i;}int reverse(int first,int sum,int k)//只解释这个主要函数。 {int i;int head;int p1,p2,p3;//p1,p2,p3轮替使指针移位,并且交换指针。 int firstend=first;//记录上一次的末尾,以便跟这一次的头相连。 for(i=0;i<sum/k;i++){int key=k;key--;p2=first;p3=ss[first].next;while(key--)//循环交换。 {p1=p2;p2=p3;p3=ss[p2].next;ss[p2].next=p1;}if(i==0)//第一次时无需连接上一次的未和这一次的头,且要返回新的头指针 {head=p2;if(p3!=-1){first=p3;}else{ss[first].next=-1;}}else{ss[firstend].next=p2;firstend=first;if(p3!=-1){first=p3;}else{ss[first].next=-1;}}}if(p3!=-1)//跳出for循环而不空,直接相连即可。 {ss[firstend].next=p3;}return head;}void print(int first){while(ss[first].next!=-1){printf("%05d %d %05d\n",first,ss[first].n,ss[first].next);first=ss[first].next;}printf("%05d %d %d\n",first,ss[first].n,ss[first].next);}

02-线性结构3 Reversing Linked List (25 分)相关推荐

  1. 1074 Reversing Linked List (25 分) java 题解

    Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elem ...

  2. (c语言)Reversing Linked List (25分)

    关于数据结构Mooc后的每一道答案 基本我都已经给出了详解 希望能对大家有所帮助 收藏一下也是方便大家查找吧 希望大家一起进步! (c语言)浙大数据结构Mooc作者答案集 下面是关于这道题的图片 关于 ...

  3. 1074 Reversing Linked List (25 分)【难度: 一般 / 知识点: 链表】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805394512134144 乙级里面的原题吧,就用哈希表建链表,reve ...

  4. [PAT] 02-线性结构2 Reversing Linked List(单向链表的逆转) - C语言实现

    今天突然想起自己的cnblog有差不多一年没更了?放一道很久前做的也写好了很久但是一直忘记发布的题.如果有不同的算法欢迎分享~ [PAT]02-线性结构2 Reversing Linked List  ...

  5. 02-线性结构3 Reversing Linked List

    02-线性结构3 Reversing Linked List(25 分) Given a constant K and a singly linked list L, you are supposed ...

  6. 附加3 Merging Linked Lists (25 分)

    Given two singly linked lists L 1=a 1 →a 2​ →⋯→a n−1​ →a n and L 2 =b 1 →b 2 →⋯→b m−1 →b m . If n≥2m ...

  7. 每隔k次反转一次 链表_PTA 5-2 Reversing Linked List (25) [法一] - 线性表 - 链表反转 (PAT 1074)...

    Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elem ...

  8. PAT 1074. Reversing Linked List (25)

    Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elem ...

  9. 1074. Reversing Linked List (25)

    Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elem ...

最新文章

  1. 不做调参侠,重视数据及处理能力?吴恩达发起的Data-Centric赛事总结!
  2. 深度学习之PyTorch物体检测
  3. AI:周志华老师文章《关于强人工智能》的阅读笔记以及感悟
  4. 全球农业资源利用与粮食安全研讨会 国际农民丰收节贸易会
  5. 【Postgresql】use
  6. “约见”面试官系列之常见面试题之第一百零一篇之vue-router传参(建议收藏)
  7. 信奥中的“骗”分神技 ---“打表”
  8. 魅族回应 “暗中给手机植入木马”;前谷歌AI伦理专家遭解雇或因论文;GoLand 2020.3发布|极客头条...
  9. 上线一套 BI 系统到底需要多少钱???
  10. 苹果主题商店_看厌了官方皮肤,快试试微信QQ半透明主题!不仅会动还有声音!...
  11. Linux Block Driver - 1
  12. Android HttpClient及连接管理器
  13. 手把手教你关闭iphone系统自动下载(新增IOS11描述性文件地址)
  14. PS制作橙子鱼缸、折纸效果字
  15. js 打开视频文件,测试已通过
  16. [VS报错] 应用程序无法正常启动0xc000007b -- 解决措施
  17. 笔记本电脑重装win10系统图文并茂详细操作教程(U盘重装系统)
  18. css backdrop-filter属性 用来做图片的部分模糊效果
  19. 2017cad光标大小怎么调_cad十字光标怎么调大-调整cad十字光标大小的方法 - 河东软件园...
  20. 部落节点和跨群集搜索:Elasticsearch中联合搜索的未来

热门文章

  1. 修改定位工具相关的app
  2. 蓝桥杯真题:递增序列
  3. Word2013产生左侧书签以及转化成PDF时生成对应书签
  4. 总结:js世界中的特殊符号
  5. 微信小程序更新webview页面的三种方法
  6. SQLSERVER时间函数
  7. 分享公众号预约系统怎么做_微信公众号制作线上预约系统步骤
  8. 计量经济学导论 计算机实验,伍德里奇计量经济学导论计算机习题第六章第13题c_6.13...
  9. GooFlow Web UI流程图插件
  10. CentOS7 搭建php环境