将元素添加到有序列表



我想将一个元素添加到链表中,以便列表保持排序。我写了这个函数。他有一个应该包括的地方,但我不知道如何插入元素。

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 ???
}

您完全没有提供有关 LinkedList 类的上下文,所以我只能做出有根据的猜测。

鉴于我从上面的代码中了解到的情况,在遍历到要插入新Node的位置后,您需要将Node curr1的链接(这是最后一个节点)设置为新的节点对象。

Node temp = curr1.Link; // store next Node in temporary object
curr1.Link = n; // Insert new Node

请记住,您需要将新节点的链接设置为链接列表中的下一个节点,以便继续链接列表(如果新插入的节点不是最后一个):

n.Link = temp;

如果我在理解您的代码时犯了错误,请告诉我,然后我可以相应地更改我的答案。

在我亲爱的朋友们的帮助下。我可以写这个函数。下面你可以看到代码:

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; }

相关内容

  • 没有找到相关文章

最新更新