LNode * 代表节点
LinkList 代表链表
都是指向链表首个元素的指针
// 按位序插入
// 定义节点元素
typedef struct LNode {
ElemType data;
struct LNode *next;
}LNode, *LinkList;
// 在第i个位置插入元素e (带头节点)
bool ListInsert(LNode &L, int i, ElemType e) {
// 判断i小于1的情况
if (i < 1) return false;
// 定义
LNode *p; // p指向扫描到的节点
P = L; // L指向头节点,P也就指向头节点
// 判断i >= 0 并且 p != null 情况, 此时p后移
// 主要找到i-1的位置,1节点的位置位0,j 在 0到i-1上找位置插入
if (p != null && j < i-1) {
p = p -> next;
j++;
}
// 如果p指针不在
if (p == null ) return false;
// 做插入节点操作
// 申请空间, 那新空间给s节点
LNode *s = (LNode *)malloc(sizeOf(LNode));
// 给s节点赋值e
s -> data = e;
// s指向p->next
s -> next = p -> next;
// p -> next 指向s
p -> next = s;
return true;
}