发布网友 发布时间:2023-01-10 20:19
共3个回答
热心网友 时间:2023-07-12 23:56
因为如果是L的话,就要把整个这个结构体都传过去,效率不高,而用其指针传递的只是一个地址,效率要高很多,尤其对于大型程序来说。而且creat函数里有*L,这就是指向结构体了,刚好需要传指向结构体 的指针,所以只能取址L,说白了 一个穿的是指针,而一个传的是结构体,效率高下之分一看就知道追问如果要加一个删除结点 怎么改啊追答没仔细看你代码,但是,要删除一个节点的话,可以给你说下思路,假设previous为指向前一个结构体的指针,current为指向当前要删除节点的指针,next为指向要删除节点的下一个结构体指针,那么要删除current节点的话,就需要把previous->link=next; link相当于struct Lnode *next 的next指针,采纳我吧,这是C和指针里的,你可以看看这本书
热心网友 时间:2023-07-12 23:56
用&L地址的话,create操作是对&L地址下的内容进行操作,当你再访问这个地址时,里面的内容就是被create改过的内容了,如果传的是L,那么你只是在create这个方法中对一个临时存在的L下的信息进行修改,对于原先的L没有任何影响。追问如果要删除结点 该怎么在程序里加啊追答假如有一个链表中有一段是a-->b-->c,想要删除b节点,则设置a的下个节点为c,c的前一个节点为a,这样自然而然在链表中就没有b的存在了。
热心网友 时间:2023-07-12 23:57
因为create函数接受的参数是LinkList *,即指向LinkList的指针,当然要传L的地址了。要不然复制一份L到create函数中去,没什么用呀。