先找到需要插入的位置,然后插入;找位置有两种方法:1.按位置查找;2.按值查找
先给出插入的函数
bool InsertNextNode(LNode* p, int e) //插入元素
{
if (p == NULL)
return false;
LNode* s;
s = (LNode*)malloc(sizeof(LNode));
if (s == NULL)
return false;
s->data = e;
s->next = p->next;
p->next = s;
return true;
}
1.按位置查找元素代码段
LNode* GetElem(LinkList L, int i) //查找第i号元素;
{
int j = 1;
LNode* p = L->next;
if (i == 0) //头节点输出NULL;
printf("NULL");
if (i < 0) //不合理值处理
printf("NULL");
while (p != NULL && j < i)
{
p = p->next;
j++;
}
return p;
}
2.按值查找代码段
LNode* Getdata(LinkList L, int e) //按值查找元素
{
LNode* p = L->next;
while (p!= NULL && p->data != e)
{
p = p->next;
}
return p;
}
第一篇文章中有结构体的定义,主函数;插入元素先调用寻找元素的函数,在调用插入元素;
本节主函数:我调用的是按值查找元素,在查找值之后插入;
case 6:
printf("请输入需要插入元素位置之前的元素:");
scanf_s("%d",&m);
c = Getdata(L, m);
printf("请输入需要插入的元素:");
scanf_s("%d",&e);
InsertNextNode(c, e);
break;