【发布时间】:2019-07-02 06:35:44
【问题描述】:
必须创建一个链接列表,我们将在其中添加相互依赖或不依赖的部门。
输入将是部门名称,后跟他们所依赖的部门名称,有些可以后跟空字符串,这意味着它们不依赖于任何部门。
所以输出将首先是第二个部门,依此类推
一个部门不能靠自己(小心)
必须查找部门是否存在循环依赖(问题)
输入
销售
营销帐户
金融销售
所以输出将是
销售财务账户营销
输入
销售营销
营销帐户
帐户销售
输出
错误不能有循环依赖
尝试使用以下代码查看我的链表是否有循环
private bool DoesItHasLoops()
{
var fast = myLinkedList.First;
var slow = myLinkedList.First;
while (fast != null && fast.Next != null)
{
fast = fast.Next.Next;
slow = slow.Next;
if (slow == fast)
return true;
}
return false;
}
它不工作,无法找到循环。
下面的代码是我在链表中添加字符串的方式。
private LinkedList<strings> myLinkedList;
public void AddDepartments(string[] input)
{
if (input.Count() > 1)
{
if (myLinkedList.Contains(input[0]))
{
myLinkedList.AddBefore(adjList.Find(input[0]), input[1]);
}
else
{
myLinkedList.AddLast(input[1]);
myLinkedList.AddLast(input[0]);
}
}
else
{
myLinkedList.AddLast(input[0]);
myLinkedList.AddLast(string.empty());
}
}
这适用于所有情况,只有循环情况不起作用
【问题讨论】:
-
在您的第一个示例中,不应该是“销售财务、客户营销”吗?如果没有,我不确定我是否理解订单
-
是的,我的错误编辑
-
一个部门可以有多个依赖关系吗?
-
它可能有多个依赖项
-
@Mainak Ganguly 如果您能告诉我们您最终使用了什么方法并为您的问题选择一个答案,那就太好了,因为您有两个很好的版本来解决您的问题。或者,如果您自己想出了一些东西,也可以将其发布为答案。
标签: c# .net linked-list