单链表中在结点前插入一个结点的算法

单链表中在结点前插入一个结点的算法,第1张

假设插入的值为int类型,为a

void Insert(LinkList P)

{

LinkList s

int a,tempt

s=(LinkList)malloc(sizeof(LNode))

s->data=a

s->next=x->next

x->next=s

tempt=s->data

s->data=x->data

x->data=tempt

}

这个算法的思想是在x的节点后插入一个节点,然后将x节点的值和插入节点的值交换,这就相当于在x节点前插入一个节点了。

void Del(LinkList P)

{

LinkList L,S

S=P

L=s->next

while(S->next)

{

if(L->data==x)

{

S->next=L->next

free(L)

L=S->next

}

else

{

S=S->next

L=L->next

}

}

}

这是第二个了

是双向链表。

LinkedList是一个可以存放不同类型且长度可以变的数据集合。在内存中元素不连续分配,每个元素都有记录前后节点位置信息。

LinkedList的优势在于1. LinkedList提供了4个不同位置的添加数据的方法,分别为链头插入,链尾插入,节点前插入,节点后插入。2. 由于LinkedList是双向链表,在查询数据方面提供了“从前往后”和“从后往前”两个查询方法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11195546.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存