画像の説明をここに入力

あるデータをツリー構造のデータを作ろうとしているのですが、
うまくロジックをくめずにおります。
イメージとしては
画像のようなA~Fのデータをツリーで持ちたく考えており、

データとしてA~Fをもつデータ配列と
矢印線のデータ配列があります。
A~Fのデータはそれぞれ、つながる線のデータをもち、
矢印線のデータは矢印の先にどのデータA~Fにつながっているかの情報を持っています。

図のように矢印のデータにIN、OUTがわかるようであれば若干楽になるのですが
それがない状態です。
A~FのデータはAがトップのデータであるということのみがわかるようなものになっています。

List<Item> items;   A~Fのリスト情報
List<Arrow> arrows; 矢印線のリスト情報


    public class Element
    {
            public int Id;
            public int Parent;
            public IList Children;
    }

~~

ObservableCollection<Element> tree = new ObservableCollection<Element>();

Element element = new Element();
element.Id = items[0].Id;
itemsからA(トップ)の情報を取得し、つながるアイテムデータのリストを取得する
element.Childrenに取得したリストを設定
// ツリー情報にエレメントを追加
tree.Add(element);

つながるアイテムデータのリスト分、同じような処理をループして行うことになると思うのですが、どのようにメソッドを分けていいのかが整理できずにおります。

説明が下手で申し訳ないのですが、アドバイスいただけると助かります。