链表图

链表图
注:

结点名:a,b,c

结点的值域:1,2,3,4

结点的链域:b,c,d,e

^表示null

讲解:

a->next的值为b结点的存储id

a->data的值为他的值域是1

f->next的值为空,是NULL。

实例一:已知b和c结点,然后删除c结点

b->next=c->next;

**意义:**根据上面的讲解,因为b的链域存的是c,要删除c我们只需要将b的链域改为c的链域值即可,也可以怎么理解,将原本放在b链域中的值改为我们想要的某个结点值。

实例二:在bc中间添加结点为p的结点

出于安全,我们应该先将p链接到c上,然后在将b连接到p上

p->next=c;
b->next=p;

当然,如果不按照我上面这个走,还是可以按照自己的方法写,这里举一个例子

b->next=p;
p->next=c;

难理解点:

b->next=c;

b->next=c->next;

上面这两个是完全不相同的概念,

第一个是把c结点作为b结点的链域,而第二个是把c结点的链域作为b结点的链域,意思是删除c结点。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐