C/C++ 单链表插入节点函数实现 - 在第 i 个位置前面插入
typedef struct Lnode {
ElemType data; // 数据域
struct Lnode *next; // 指向下一节点的指针
} Lnode, *LinkList;
// 在带头结点单链表 L 的第 i 节点位置前面插入新的结点,新节点数据为 x
// 此处 i 为逻辑位序,如果插入成功后,刚插入的结点是第 i 个结点
// 插入成功返回 true,插入失败返回 false
bool Insert(LinkList L, int i, const ElemType x) {
int j = 0;
LinkList p = L, q;
while (p && j < i - 1) { // 寻找第 i-1 个结点
p = p->next;
j++;
}
if (!p || j > i - 1) { // i 小于 1 或大于表长+1,插入位置非法
return false;
}
q = (LinkList)malloc(sizeof(Lnode)); // 创建新结点
q->data = x;
q->next = p->next;
p->next = q; // 将新结点插入到链表中
return true;
}
原文地址: https://www.cveoy.top/t/topic/oG9U 著作权归作者所有。请勿转载和采集!