typedef PERSON * LINK
当使用LINK时,可以举例如下:
LINK p
PERSON per
p = &per
2.第4行可能是笔误吧,应该是:
new->next = marker->next
这里无法贴图,只好写些文字来叙述了。
比如,链表是这样的:
假设link1的next是link2,link2的next是link3,以此类推,linkm的next是linkn,linkn的next是linko等等,又假设marker等于linkn,新创建的结构是new,需要添加到marker后面,也就是要求达到linkn的next是new,new的next是linko的目的,显然执行第5行和第4行分别完成上述两个目的。
不知道这样能否加深了解,呵呵。
针对你的问题补充再描述一下。
1.“又假设marker等于linkn”的意思是找到标记节点marker,并假设该节点就是linkn。原题的意思就是希望在标记节点的后面添加新的节点。
2.可能你没有正确理解next的含义。每个结构实例中的next成员表示一个地址,该地址就是链表中下一个节点的首地址,实际上就是一个长整型数。那么,执行第4行语句new->next = marker ->next之后,节点new的next成员就获得了标记节点下一个节点的地址,而执行第5行语句marker->next =new之后,标记节点的next成员就被节点new的地址所取代。举个简单的例子来说:
假设link1=1000,link2=1004,...,linkn=1100,linko=1104,节点都用一个整型地址来表示,那么当它们连接成一个链表后,link1->next=link2=1004,...,linkn->next=linko=1104,又marker=linkn=1100,new=2000,执行第4行语句后new->next就从一个随机数(或称为随机地址)变为marker->next=linkn->next=1104,执行第5行语句之后marker->next=new=2000。
记住,next是一个地址或一个长整型数而已。
Node n = new Node(data,null)第一步: 一个新进来的节点,next是没有滴。
n.next = this.head
第二步:新节点的next设置成head 。
this.head = n
第三步:把当前节点设置成head 。
Good Luck !
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)