moveonz 2021-09-01 13:58 采纳率: 58.3%
浏览 49
已结题

c语言代码,注释写一下,

刚刚开始,学习一年
单链表的代码,C语言的,
来个哥
帮我写个注释
要详细一点的
谢谢各位帮忙
给大家磕个头
img

  • 写回答

1条回答 默认 最新

  • 全栈极简 博客专家认证 2021-09-01 14:24
    关注
    
    void ListInsert(Node** pHead, Node* pos, DataType data)
    {
        assert(pHead); //断言,看头结点是否为NULL
        assert(pos);   //断言,看插入位置的结点是否为NULL
        
        Node* pNewNode = ListCreatNode(data);//根据数据创建一个结点
        if (*pHead == NULL) //如果头结点为空,则将该结点作为头结点
        {
            *pHead = pNewNode;
            return;
        }
        if (pos == NULL) //如果插入位置为空,则将该结点插入到头结点之后
        {
            ListPushBack(pHead, data);
            return;
        }
    
        if (pos == *pHead)  //如果插入位置跟头结点一致,则将该结点插入到头结点之后
        {
            ListPushBack(pHead, data);
            return;
        }
    
        Node* pCur = *pHead; //头结点指针赋值给pCur(用来遍历)
        while (pCur->_pNext != NULL)
        {
            //插入结点的动作
            if (pCur->_pNext == pos) //如果当前结点的下一节点跟要插入结点的位置一样(即找到了想要插入的位置)
            {
                pNewNode->_pNext = pos; //就把新结点的next指针指向想插入结点的位置
                pCur->_pNext = pNewNode;//把当前结点的next指针指向新插入结点
            }
            pCur = pCur->_pNext; //把当前结点的next指针赋值给当前结点,通过指针循环插入。
        }
        return;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月10日
  • 已采纳回答 9月2日
  • 创建了问题 9月1日

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行