我想在链表中添加一个元素,以便列表保持排序状态。我写了这个函数。他有一个应该包含的地方,但我不知道如何插入元素。
public void AddSorted(int num)
{
Node n = new Node(num);
Node curr = _first;
Node curr1 = _first.Link;
while (curr1.Data < n.Data && curr1 != null)
{
curr = curr.link;
curr1= curr1.link;
}
// how to add element ???
}
答案 0 :(得分:1)
您完全没有提供关于您的LinkedList类的上下文,因此我只能做出有根据的猜测。
根据我对上述代码的理解,在遍历到您要插入新Node
的位置后,您需要将Node curr1
(最后一个节点)的链接设置为新节点对象。
Node temp = curr1.Link; // store next Node in temporary object
curr1.Link = n; // Insert new Node
请记住,您需要将新节点的链接设置为LinkedList中的下一个节点,以便继续LinkedList(如果新插入的节点不是最后一个节点):
n.Link = temp;
如果我在理解您的代码时出错,请告诉我,然后我可以相应地更改我的答案。
答案 1 :(得分:0)
在亲爱的朋友们的帮助下。 我可以写这个功能。 您可以在下面看到代码:
public void AddSorted(int num)
{
Node n = new Node(num);
Node curr = _first;
if (_first == null || _first.Data >= n.Data)
{
n.Link = _first;
_first = n;
}
else
{
while (curr.Link != null && curr.Link.Data < n.Data)
{
curr = curr.Link;
}
n.Link = curr.Link;
curr.Link = n;
}