将元素添加到有序列表中

时间:2014-12-27 15:36:04

标签: c# data-structures linked-list

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

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

2 个答案:

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