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

指定结点的后插操作

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;
}
相关推荐
随意起个昵称17 小时前
区间dp-基础题目1(石子合并)
算法·动态规划
吞下星星的少年·-·17 小时前
线段树模板
算法
段一凡-华北理工大学17 小时前
2026 高炉炼铁智能化技术全景与演进路径~系列文章11:演进路径与行业未来
大数据·网络·人工智能·算法·工业智能体·高炉炼铁智能化
叶小鸡18 小时前
小鸡玩算法-力扣HOT100-多维动态规划
算法·leetcode·动态规划
星马梦缘18 小时前
aaaaa
数据结构·c++·算法
OpenApi.cc18 小时前
神经网络结构驱动+数据结构分析
数据结构·人工智能·神经网络
菜菜的顾清寒19 小时前
力扣HOT100(42)链表-随机链表的复制
算法·leetcode·链表
lqqjuly19 小时前
模型剪枝与稀疏化:理论、算法与可运行实现
人工智能·算法·剪枝
逻辑君19 小时前
Foresight研究报告【20260011】
人工智能·线性代数·算法·矩阵
珊瑚里的鱼19 小时前
【动态规划】不同路径Ⅱ
算法·动态规划