我是靠谱客的博主 飘逸舞蹈,最近开发中收集的这篇文章主要介绍数据结构学习记录(三)链表的选择排序排序操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在上一篇博文中,我写过了根据下标进行链表元素交换的函数(并且不能交换头结点),这次由于选择排序需要用到交换元素这个功能,于是我写下了,一个全新的交换函数(整个节点的交换)。它可以根据两者的指针值来进行交换操作。

单链表交换两个节点有一个非常值得注意的地方,指针值十分容易混乱。所以我们用图解来讲解整个过程原理:

如下图为一个单链表:

首先,当链表为空或两个需要交换的元素为同一个节点时,不进行操作。接下来交换分为以下几种情况,当p1或p2中有一个是头指针时且另一个指针是它的下一个(即两个相邻),我们把头指针拟定为p1,若p2为头指针,则交换p1与p2的值,这样p1就总是头指针,只需写一个p1为头指针交换的操作了。

先把p2的值赋给头(p2就成为了头),在定义变量post2记住p2的后一个节点的指针,在把p1的值赋给p2的next(即让p2指向p1),p1在指向post2,这样就完成了交换操作。

还有p1不和p2相邻的情况&#x

最后

以上就是飘逸舞蹈为你收集整理的数据结构学习记录(三)链表的选择排序排序操作的全部内容,希望文章能够帮你解决数据结构学习记录(三)链表的选择排序排序操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部