2010-08-14 24 views
0

我想創建2個鏈接列表與一個公共交集節點。正如我所看到的,這是LinkedList中找到交集節點的一個非常熱門的問題。我寫了下面的代碼,但它會拋出InvalidOperationException異常。如何在C#中創建交叉鏈表?

 LinkedList<int> LL = new LinkedList<int>(); 
     LL.AddFirst(5); 
     LL.AddFirst(4); 
     LL.AddFirst(3); 
     LL.AddFirst(2); 
     LL.AddFirst(1); 

     LinkedListNode<int> sectionNode = LL.Find(3); 
     LinkedList<int> LL2 = new LinkedList<int>(); 
     LL2.AddFirst(100); 
     LL2.AddFirst(90); 
     LL2.AddFirst(80); 
     LL2.AddFirst(sectionNode); 

有人請指導我如何在C#中創建一個Y形鏈表。

+0

你對於什麼構成「非常熱門的問題」有一些有趣的想法。 – 2010-08-14 05:26:05

+0

爲什麼不使用樹? – 2010-08-14 06:46:23

回答

2

不支持。該節點跟蹤它的List,您可以通過只讀屬性訪問它。這意味着一個節點不能同時在兩個列表中,只能通過刪除和添加來更改父列表。

這顯然是爲了保護人們免於錯誤,但它也使你想要的不可能。請注意,LinkedList是雙重鏈接的,所以如果這樣起作用,則必須任意選擇ListPrevious參考。

您可以使用(或寫入)具有不同行爲的第三方實現。例如,this code實現了一個單鏈表。節點沒有對其包含列表的引用,所以Y應該沒問題。