美文网首页
单链表的插入

单链表的插入

作者: 南风_001 | 来源:发表于2019-08-28 10:24 被阅读0次

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

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

    代码如下:

    // 初始条件:顺序线性表L已存在,1<=i<ListLength(L)。
    // 操作结果是:在L中第i个结点的位置之前插入新的数据元素e,L的长度+1
    Status ListInset (LinkList *L, int i, ElemType e) {
        int j;
        LinkList p,s;
        p = *L;
        j = 1;
        // 寻找第i-i个节点
        while (p && j < i) {
            p = p->next;
            ++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;
    
    }
    

    相关文章

      网友评论

          本文标题:单链表的插入

          本文链接:https://www.haomeiwen.com/subject/vdfpectx.html