单链表指定结点的后插 前插操作

指定结点的后插操作

cpp 复制代码
#define NULL 0

typedef struct LNode
{
    int data;
    struct LNode* next;
}LNode, * LinkList;

//后插操作:在p结点后插入元素e
bool InsertNextNode(LNode* p, int e) {
    if (p == NULL)
        return false;
    LNode* s = (LNode*)malloc(sizeof(LNode));
    if (s == NULL)                  //分配内存失败
        return false;
    s->data = e;                        //用结点s保存数据e
    s->next = p->next;
    p->next = s;                        //将结点s连到p后
    return true;
}

bool ListInsert(LinkList& L, int i, int e) {
    if (i < 1)
        return false;
    LNode* p = L;           //指针p指向当前扫描结点,目前指向头结点,是第0个
    int j = 0;              //当前p指向第几个结点
    while (p != NULL && j < i - 1)          //循环指到第i-1个结点
    {
        p = p->next;
        j++;
    }
    //return InsertNextNode(p, e);
    return InsertPriorNode(p, e);
}

指定结点的前插操作

cpp 复制代码
//前插操作:在p结点之前插入元素e
bool InsertPriorNode(LNode* p, int e) {
    if (p == NULL)
        return false;
    LNode* s = (LNode*)malloc(sizeof(LNode));
    if (s == NULL)                  //分配内存失败
        return false;
    s->next = p->next;
    p->next = s;
    s->data = p->data;              // 将p中元素复制给s
    p->data = e;                        // p中元素覆盖为e
    return true;
}
相关推荐
小芒果_017 小时前
整理归并排序
c++·算法·排序算法·信息学奥赛
松涛和鸣7 小时前
49、智能电源箱项目技术栈解析
服务器·c语言·开发语言·http·html·php
牛三金7 小时前
匿踪查询沿革-Private Information Retrieval(PIR)
算法·安全
德育处主任7 小时前
『NAS』在群晖部署一个文件加密工具-hat.sh
前端·算法·docker
凉、介7 小时前
SylixOS 中的 Unix Socket
服务器·c语言·笔记·学习·嵌入式·sylixos
星辞树7 小时前
从 L1/L2 到 Dropout:深度解析正则化,为何推荐系统“只能练一次”?
算法
玖剹7 小时前
队列+宽搜(bfs)
数据结构·c++·算法·leetcode·宽度优先
X***07887 小时前
从底层逻辑到工程实践,深入理解C语言在计算机世界中的核心地位与持久价值
c语言·开发语言
mit6.8247 小时前
01bfs|前缀和的前缀和
算法
wen__xvn7 小时前
代码随想录算法训练营DAY11第五章 栈与队列part02
算法