C语言 在链表尾部添加节点

C语言 在链表尾部添加节点,第1张

加分了

#include<stdio.h>

#include<stdlib.h>

class point //节点类

{

public:

int a //节点值

point *next//next指针

}

void newlast(point *&p,int i) //在*p所指的链表的最后新建一个值为i的节点

{

point *q,*o

q=p

while(q->next)

{

q=q->next

}

printf("%d\n",q->a)

o=(point *)malloc(sizeof(point))

o->a=i

q->next=o

o->next=NULL //结束标记

}

void show(point *p)//输出指针p所指链表

{

point *q

q=p

while(q)

{

printf("%d\t",q->a)

q=q->next

}

printf("\n")

}

int main()

{

point b1,b2,b3

point *p

b1.a=1

b2.a=2

b3.a=3

p=&b1

b1.next=&b2

b2.next=&b3

b3.next=NULL //结束标记

show(p)

newlast(p,4)

show(p)

return 0

}

把S结点插入到链表末尾,结果应该是这样的

所要做的工作就是,把F值所在的结点的next指向s结点,并且把s结点的next指向NULL

所以,有以下方法:

1>对应B选项

   把s结点的next指向null即:s->next = '\0'

   把p指针指向F所在的结点,也就是p结点的next指针所指向的结点:p = p->next

   把F所在的结点的next指向s结点;

2>对应C选项

   p指针指向F所在的结点:p = p->next

   s结点的next指针指向p->next,也就是NULL:s->next = p->next

   把F所在的结点的next指向s结点;

3>对应选项D

   这个选项其实和C选项采用的方法是一样的,只不过取值的方式不一样,C选项用指针取值的,而D选项首先把指针的所指向的地址给拿出来,在对其取值,相当于普通变量。所以C选项用的是'->'而D选项用的是'.'


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

原文地址:https://54852.com/bake/11632604.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存