在我的程序中,Density表示指示连接到特定节点的节点数的计数。例如,如果某个节点的密度为3,则表示它连接到无向图中的其他3个节点。我想决定密度最高的节点。直到现在我正在做这样的事情:
public Node LeaderIs(List<Node> list)
{
for (int k = 0; k < list.Count; k++)
{
var i = YelloWPages.GetNode(k, list);
for (int l = 0; l < list.Count; l++)
{
var j = YelloWPages.GetNode(l, list);
if (Node.GetDensity(i) > Node.GetDensity(j))
{
Node Leadernode = i;
}
}
}
}
我有两个问题:
Leadernode
?答案 0 :(得分:0)
回答你的问题:
1)不,这不太正确,因为你永远不会返回值而你不需要内循环。您没有尝试对列表进行排序,只需要最大值。
2)您需要在方法的顶部定义Leadernode,将其设置在测试条件的中间并在方法结束时返回
public Node LeaderIs(List<Node> list)
{
Node Leadernode = null;
int LeadernodeDensity = 0;
for (int k = 0; k < list.Count; k++)
{
var i = YelloWPages.GetNode(k, list);
int iDensity = Node.GetDensity(i);
if ( iDensity > LeadernodeDensity)
{
Leadernode = i;
LeadernodeDensity = iDensity;
}
}
return Leadernode;
}
在此处查看类似问题的答案,以获得使用C#的更好的最大值算法。