参考《数据结构(C语言版)》 - 严蔚敏 吴伟民 - 清华大学出版社
单链表的结构定义
typedef struct LNode
{
ElemType data; //结点数据
struct LNode *next; //指向下一个结点的指针
}LNode, *LinkList; //带头结点的单链表
单链表的创建
void CreateList_L(LinkList &L, int n)
{
L = (LinkList)malloc(sizeof(LNode)); //创建链表空间
L->next = NULL;
for (int i = n; i > 0; i--) //依次输入数据,先进元素在表尾,后进元素在表头
{
LNode *p = (LinkList)malloc(sizeof(LNode));
scanf_s("%d", &p->data);
p->next = L->next; L->next = p;
}
}
单链表增加元素
void ListInsert_L(LinkList &L, int i, ElemType e)
{
LNode *p = L; int j = 0;
while (p && j < i - 1) //找到增加位置的前一个节点位置
{
p = p->next;
j++;
}
if (!p || j > i - 1)
{
printf("找不到可插入的位置!");
return;
}
LNode *s = (LinkList)malloc(sizeof(LNode)