C#链表可以';我不懂加法
无法理解Head是如何获取传递给curr的数据的。如果有人能给出一个清晰的解释那就太好了C#链表可以';我不懂加法,c#,linked-list,C#,Linked List,无法理解Head是如何获取传递给curr的数据的。如果有人能给出一个清晰的解释那就太好了 class LinkedListService { private Service Head; public LinkedListService() { Head = null; } public void add(Service data) { Service curr = Head; if (Head =
class LinkedListService
{
private Service Head;
public LinkedListService()
{
Head = null;
}
public void add(Service data)
{
Service curr = Head;
if (Head == null)
{
Head = data;
}
else
{
while (curr.Next != null)
{
curr = curr.Next;
}
curr.Next = data; // how does Head receive the data that is passed to curr ?
}
}
}
没有。在第一行中,curr
指向对象头部
Service curr = Head; // curr --> Head
现在,如果Head
尚未初始化,这意味着:如果(Head==null)
它将获取数据并将Head
指向内存中该行中存在数据的同一地址:
Head = data;
另一方面,如果头部
已经存在,则新数据必须转到尾部的末尾。尾部表示为一系列元素,可通过Next
属性访问这些元素:
Head | Head.Next --> item2 | item2.Next --> item3 | item3.Next --> null
尾部的最后一项将没有下一项。所以它的值将是null
。只要存在Next
元素,while循环就会贯穿整个尾部,并且在每一步都将Next
元素分配给curr
ent元素:
while (curr.Next != null)
{
curr = curr.Next;
}
当到达没有Next
项的最后一个元素时,它将获取Next
属性,并将其指向数据
所在的内存地址:
curr.Next = data;
不,列表末尾还有一项。这个新项的下一个属性再次指向null
希望这是可以理解的。如果不给我留言。我们应该如何猜测服务
类实现?你的问题是什么?无论你在这里问什么,都与代码不完全相关。显示您的完整代码
curr.Next = data;