博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1025 反转链表 (25 分)
阅读量:4046 次
发布时间:2019-05-25

本文共 1672 字,大约阅读时间需要 5 分钟。

给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最后不到 K 个元素不反转。

输入格式:

每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤10​5​​)、以及正整数 K (≤N),即要求反转的子链结点的个数。结点的地址是 5 位非负整数,NULL 地址用 −1 表示。

接下来有 N 行,每行格式为:

Address Data Next

其中 Address 是结点地址,Data 是该结点保存的整数数据,Next 是下一结点的地址。

输出格式:

对每个测试用例,顺序输出反转后的链表,其上每个结点占一行,格式与输入相同。

输入样例:

00100 6 4

00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218

输出样例:

00000 4 33218

33218 3 12309
12309 2 00100
00100 1 99999
99999 5 68237
68237 6 -1

代码一: (手动反转)

#include
#include
#include
#include
using namespace std;struct node{ int adde; //地址 int data; //结点数据 int next; //下一个结点地址};int first,n,k; //首结点地址,结点数,k个结点反转struct node link[100007];struct node link1[100007];struct node link2[100007];int main(){ scanf("%d%d%d",&first,&n,&k); for(int i=0;i
=i*k;j--) { link2[ind]=link1[j]; ind++; } } for(int i=ind;i

代码二:(使用现成的反转函数reverse)

#include
#include
#include
#include
using namespace std;struct node{ int adde; //地址 int data; //结点数据 int next; //下一个结点地址};int first,n,k; //首结点地址,结点数,k个结点反转struct node link[100007];struct node link1[100007];struct node link2[100007];int main(){ scanf("%d%d%d",&first,&n,&k); for(int i=0;i

代码三:(数组下标为结点地址+反转函数reverse)

#include
#include
#include
#include
using namespace std;struct node{ int data; int next;};struct node list[100007];int list1[100007];int main(){ int first,k,n; int tem; scanf("%d%d%d",&first,&n,&k); for(int i=0;i

 

转载地址:http://mpzci.baihongyu.com/

你可能感兴趣的文章
vsftp 配置具有匿名登录也有系统用户登录,系统用户有管理权限,匿名只有下载权限。
查看>>
linux安装usb wifi接收器
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
让我做你的下一行Code
查看>>
浅析:setsockopt()改善程序的健壮性
查看>>
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
SQL 多表联合查询
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
在C++中使用Lua
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
GitHub 万星推荐:黑客成长技术清单
查看>>
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
为什么读了很多书,却学不到什么东西?
查看>>