旋转链表

news/2024/9/19 2:06:00/文章来源:https://www.cnblogs.com/zhzbubai/p/18415761

旋转链表

开头:
对于链表的建立已经熟悉,那我们现在讲讲旋转链表的如何实现,当然旋转链表的建立是在已经掌握普通链表的基础上讲解。
正文:
旋转链表,顾名思义就是让链表“动起来”。即:使链表尾部最后的结点转到链表首部的位置。假设已经建立好一条6个结点的链表,它的初始状态如下图:

image-20240915131627443

我们让他旋转两次就变成了这样,其过程是这样的,先让103到首部,然后再让22到首部,这样就是旋转两次后的结果。

image-20240915132121578

如果我们让其旋转 k次,$k = 2*10^{12}$,最后的结果是怎样的呢?即,k mod n,其中n是链表结点的个数。
下面我们来看代码:
void Linklist::Revolve(int ck,int cmaxn){count = 0;int count2 = 0;//创建四个指针Node *q1 = new Node;Node *q2 = new Node;Node *q3 = new Node;Node *q4 = new Node;q1 = first->next;q2 = first->next;  q3 = first->next;  q4 = first->next;int temp = cmaxn - ck;//q1的变化while(count != temp ){count++;q1 = q1->next;    }//q2的变化q2 = q1;while(count2 != ck - 1){count2++;q2 = q2->next;}//q3的变化count = 0;  while(count != temp - 1){count++;q3 = q3->next;}q3->next = q2->next;first->next = q1;q2->next = q4;  }

image-20240915140251327

上图中的图就是代码中的4个指针。指针指向的变化如下图:

image-20240915141202549

结语:
旋转链表就是通过旋转次数和节点个数的余数判断最终的位置。最多使用四个指针就可以实现旋转。如有错误,请指正,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/797839.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程五-线程通信之wait与notify

wait与notify用于syncronized的线程间通信的一种,wait用来阻塞线程并释放锁,notify用来唤醒线程。他们与condition作用基本一致,但是由于syncronized为jdk实现,阅读源码有难度,所以通过了解其原理,用来帮助我们后续理解condition的源码。 可以通过下面一张图来理解:下面…

帝国cms忘记了后台密码怎么办

如果你忘记了帝国CMS(EmpireCMS)的后台管理员密码,可以通过以下步骤来重置密码: 方法 1: 通过数据库重置密码登录数据库:使用数据库管理工具(如phpMyAdmin)连接到你的数据库。 登录数据库管理界面。找到用户表:通常表名为 phome_enewsuser(具体表名可能有所不同)。 打…

如何恢复对帝国CMS的访问,忘记账号密码的解决方案

如果你忘记了帝国CMS的后台管理员账号和密码,可以通过以下步骤来恢复对系统的访问: 方法 1: 通过数据库重置密码登录数据库:使用数据库管理工具(如phpMyAdmin)连接到你的数据库。 登录数据库管理界面。找到用户表:通常表名为 phome_enewsuser(具体表名可能有所不同)。 …

编程日记 后端tags过滤器

编程日记 后端tags过滤器这样查出来了所有的信息,不对 检查是这个地方有问题改掉 @Overridepublic List<User> searchUsersByTags(List<String> tagNameList) {//1.先查询所有用户QueryWrapper<User> queryWrapper = new QueryWrapper<>();List<Us…

PbootCms忘记后台管理员密码这样找回

如果你忘记了PbootCMS后台管理员的密码,可以通过以下步骤来重置密码: 方法 1: 使用官方提供的密码重置工具下载密码重置工具:下载官方提供的密码重置工具 resetpw.php。 将 resetpw.php 文件上传到网站根目录。访问重置工具:在浏览器中访问 http://[您的域名]/resetpw.php。…

织梦CMS 忘记后台管理员密码的一种解决方法

如果你忘记了织梦CMS(Dedecms)的后台管理员密码,并且拥有对MySQL数据库的操作权限,可以按照以下步骤重置密码: 步骤 1: 登录 MySQL 数据库打开 MySQL 客户端,如 phpMyAdmin 或命令行工具。 登录 MySQL 数据库:sqlmysql -u 用户名 -p输入密码后登录。步骤 2: 选择对应的数…

编程日记 后端使用redis

编程日记 后端使用redis 问题:在写伙伴匹配系统的时候,要使用redis存储数据,需要在xml文件中设置spring.session.tore-type=redis 但是3.x版本的spring不再有这个参数。 那么怎么设置是否使用redis存储呢?只要导入了org.springframework.session包那就启用,不导入就不启用…

帝国cms网站忘记登陆账号密码怎么办

如果你忘记了帝国CMS的登录账号和密码,可以尝试以下方法来恢复访问权限:通过官方提供的找回功能:访问帝国CMS的登录页面。 查看是否有“忘记密码”链接。 点击此链接,并按照提示通过注册时绑定的邮箱或手机号来找回密码。手动重置数据库中的密码:使用数据库管理工具(如ph…

phpcmsV9 管理员密码丢失或忘记了怎么办

如果你在本地测试安装phpcmsV9时忘记了管理员密码,可以通过以下步骤手动重置密码: 方法/步骤打开数据库管理工具使用如phpMyAdmin这样的数据库管理工具连接到你的本地数据库。 通常,你可以通过访问 http://localhost/phpmyadmin/ 来打开phpMyAdmin。选择数据库和表选择你的p…

如何重置帝国CMS的忘记密码

重置帝国CMS的后台管理员密码可以通过以下方法实现: 方法一:使用官方提供的密码重置工具 如果帝国CMS官方提供了密码重置工具,可以使用该工具来重置密码:下载重置工具:从帝国CMS官方网站或其他可信来源下载官方提供的密码重置工具。 上传文件:将下载的重置工具文件上传到…

帝国cms忘记密码怎么办

如果你忘记了帝国CMS的管理员密码,可以通过以下步骤来重置密码: 1. 登录数据库 首先,你需要登录到你的数据库。这通常可以通过以下几种方式完成:phpMyAdmin:通过Web界面登录数据库。 命令行工具:使用MySQL命令行工具登录数据库。 主机控制面板:通过主机控制面板(如cPan…

极致CMS忘记后台账号密码的解决办法

如果你忘记了极致CMS的后台账号密码,可以通过以下方法来找回或重置密码: 1. 通过数据库直接修改密码 如果你对数据库操作比较熟悉,可以采用此方法:登录数据库管理工具:使用phpMyAdmin或其他数据库管理工具登录到你的数据库。 找到管理员表:在数据库中找到存储管理员信息的…