单链表的插入

单链表在第i个数据插入结点的思路

  • 声明一指针p指向链表的头结点,初始化j从1开始。
  • 当就j<1时,遍历链表,让p的指针向后移动,不断指向下一结点,j++
  • 若链表的末尾p为空,那么说明第i个结点不存在,返回error
  • 若查找成功,在系统中生成一个空结点s
  • 将数据元素e赋值给s->data
  • 单链表的插入标准语句s->next=p->next, p->next=s
  • 返回成功

代码如下:

// 初始条件:顺序线性表L已存在,1<=inext;
        ++j;
    }
    // 如果第i个接点不存在
    if (!p || j > i)
    {
     return ERROR;
    }
    s = (LinkList)malloc(sizeof(Node));// 生成新的结点
    s->data = e;// 新结点的数据赋值
    s->next = p->next;// 将p的后继节点赋值给s的后继结点
    p->next = s;//把s的赋值给p的后继
    return ok;

}

你可能感兴趣的:(单链表的插入)