关于链表的赋值中指针赋值的问题。

关于c语言链表的赋值创建动态单姠链表的赋值时为什么需要结构体指针p1和p2一个头指针不就够了吗对于链表的赋值,我表示很无力... 关于c语言链表的赋值

创建动态单向链表嘚赋值时为什么需要结构体指针p1和p2 一个头指针不就够了吗对于链表的赋值,我表示很无力

首先头指针不能丢,需要保存的而p1是从头指针得到首节点后,查看当前指向节点的next是否为空判断是否尾节点如果不是尾节点,或者说当前节点的next不为NULL则p1将被赋值成这个next以便找到鏈表的赋值下一个节点而p1一开始存储的头指针就会被冲掉,所以在进行操作后p1就不能被当成链首指针来用了

其次,新的节点生成会通过new或malloc来申请空间,其返回值是个指针这时一般要用指针变量p2来接收这个指针,然后将链表的赋值尾节点的next赋值成这个p2的内容p2指向的next洅赋值成NULL成为尾节点。

最后如果需要在链表的赋值中插入,就需要一个指针p1指向当前节点另一个p2指向当前节点之后的节点,然后将p1的next賦值成新节点指针新节点指针的next赋值成p2,完成插入

总体来说,所谓p1和p2是临时辅助性的变量是为方便使用的中间变量,这个从方便出發申请的工作变量也无需节省

你对这个回答的评价是?

创建一个动态链表的赋值的时候都会定义两个结构体指针(p1 p2) 指针p2的作用一般嘟是用来将新结点(p1)的地址赋值给上一个结点的next成员。如:p2-> next = p1; 这个操作实现了链表的赋值中各个结点的关联关系

你对这个回答的评价是?

我要回帖

更多关于 链表的赋值 的文章

 

随机推荐