C# 4.0 制作LinkedList:按顺序添加
我需要创建一个C# 4.0 制作LinkedList:按顺序添加,c#-4.0,recursion,C# 4.0,Recursion,我需要创建一个链接列表。我有一个名为Node的类,它具有int属性和Node属性。我需要能够以降序向LinkedList添加项目 如果给定的数字高于列表中的最高数字,我有代码可以将项目添加到列表的开头。最低的数字也是一样。当试图在列表中间添加节点< /代码>时,问题就出现了。我需要使用递归。我已经用它找到了最高和最低的数字,但我无法找到最后一个案例的代码(在中间添加) 你能给我一个提示吗?也许告诉我哪一个是基本情况?解决了它: Node root = null; public void
链接列表
。我有一个名为Node
的类,它具有int
属性和Node
属性。我需要能够以降序向LinkedList添加项目
如果给定的数字高于列表中的最高数字,我有代码可以将项目添加到列表的开头。最低的数字也是一样。当试图在列表中间添加<代码>节点< /代码>时,问题就出现了。我需要使用递归。我已经用它找到了最高和最低的数字,但我无法找到最后一个案例的代码(在中间添加)
你能给我一个提示吗?也许告诉我哪一个是基本情况?解决了它:
Node root = null;
public void Add(int data)
{
Node m = new Node();
m.data = data;
if (root == null)
{
root = new Node();
root.data = data;
root.Next = null;
}
else if (root.Next == null)
{
if (m.data > root.data)
{
Node tempRoot = root;
root = m;
m.Next = tempRoot;
tempRoot.Next = null;
}
else
{
root.Next = m;
m.Next = null;
}
}
else if (m.data > root.data)
{
m.Next = root;
root = m;
}
else
{
Node temp = root;
Node x = Insert(temp, m);
for (; temp != x; temp = temp.Next) ;
m.Next = temp.Next;
temp.Next = m;
}
}
public Node Insert(Node n, Node insertMe)
{
if (n.Next == null)
{
return n;
}
else
{
if (insertMe.data >= Insert(n.Next, insertMe).data)
{
return n;
}
else
{
return Insert(n.Next, insertMe);
}
}
}