我是靠谱客的博主 明理电脑,最近开发中收集的这篇文章主要介绍C语言实现链表基本操作(交换第i个和第j个节点),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当i或者j为1时,需要让链表的表头指向j。
开始时

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码为

/*i和j为1时情况比较特殊,需要让表头重新指向交换后的那个节点*/
    if (i == 1) {
    
        t1 = *L;
        for (m = 1; temp->Next != NULL; m++, temp = temp->Next) {
   
            if (m + 1 == j) {
   
                *L = temp->Next;
                t2 = temp->Next->Next;
                temp->Next->Next = t1->Next;
                t1->Next = t2;
                temp->Next = t1;
            }
        }
    }

当i和j都不为1时。
节点相邻与不相邻也是不一样的。
不相邻的情况下就是让i前面的节点指向j,然后让j前面的节点指向i。如果两个节点相邻(假设i < j)j前面的节点就是i,j前面的节点指向i就是指向了自己,所以要分开写。
不相邻节点时:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码为:

if ((i - j) != 1 && (j- i) != 1) {
   //非相邻结点之间交换
            for (m = 1; temp->Next != NULL; m++, temp = temp->Next) {
   
                if (m + 1 == i) {
   
                    t1 = temp;
                }
                if (m + 1 == j) {
   
                    t2 = temp;
                

最后

以上就是明理电脑为你收集整理的C语言实现链表基本操作(交换第i个和第j个节点)的全部内容,希望文章能够帮你解决C语言实现链表基本操作(交换第i个和第j个节点)所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部