第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

C#中的樹(shù)數(shù)據(jù)結(jié)構(gòu)

C#中的樹(shù)數(shù)據(jù)結(jié)構(gòu)

慕的地8271018 2019-08-09 11:02:13
C#中的樹(shù)數(shù)據(jù)結(jié)構(gòu)我在C#中尋找樹(shù)或圖形數(shù)據(jù)結(jié)構(gòu),但我想沒(méi)有提供。對(duì)數(shù)據(jù)結(jié)構(gòu)的廣泛檢查使用C#2.0解釋了一些原因。是否有一個(gè)方便的庫(kù),通常用于提供此功能?也許通過(guò)策略模式來(lái)解決文章中提出的問(wèn)題。我覺(jué)得實(shí)現(xiàn)自己的樹(shù)有點(diǎn)傻,就像我實(shí)現(xiàn)自己的ArrayList一樣。我只想要一個(gè)可以不平衡的通用樹(shù)。想一下目錄樹(shù)。C5看起來(lái)很漂亮,但它們的樹(shù)結(jié)構(gòu)似乎被實(shí)現(xiàn)為更適合搜索的平衡紅黑樹(shù),而不是表示節(jié)點(diǎn)的層次結(jié)構(gòu)。
查看完整描述

3 回答

?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊

我最好的建議是沒(méi)有標(biāo)準(zhǔn)的樹(shù)數(shù)據(jù)結(jié)構(gòu),因?yàn)橛泻芏喾椒梢詫?shí)現(xiàn)它,用一個(gè)解決方案覆蓋所有基礎(chǔ)是不可能的。解決方案越具體,它就越不可能適用于任何給定的問(wèn)題。我甚至對(duì)LinkedList感到惱火 - 如果我想要一個(gè)循環(huán)鏈表怎么辦?

您需要實(shí)現(xiàn)的基本結(jié)構(gòu)將是一組節(jié)點(diǎn),這里有一些選項(xiàng)可以幫助您入門(mén)。我們假設(shè)類(lèi)Node是整個(gè)解決方案的基類(lèi)。

如果只需要向下導(dǎo)航樹(shù),那么Node類(lèi)需要一個(gè)子列表。

如果需要向上導(dǎo)航樹(shù),則Node類(lèi)需要指向其父節(jié)點(diǎn)的鏈接。

構(gòu)建一個(gè)AddChild方法,負(fù)責(zé)處理這兩點(diǎn)的所有細(xì)節(jié)以及必須實(shí)現(xiàn)的任何其他業(yè)務(wù)邏輯(子限制,對(duì)子項(xiàng)進(jìn)行排序等)


查看完整回答
反對(duì) 回復(fù) 2019-08-09
?
揚(yáng)帆大魚(yú)

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

delegate void TreeVisitor<T>(T nodeData);class NTree<T>{
    private T data;
    private LinkedList<NTree<T>> children;

    public NTree(T data)
    {
         this.data = data;
        children = new LinkedList<NTree<T>>();
    }

    public void AddChild(T data)
    {
        children.AddFirst(new NTree<T>(data));
    }

    public NTree<T> GetChild(int i)
    {
        foreach (NTree<T> n in children)
            if (--i == 0)
                return n;
        return null;
    }

    public void Traverse(NTree<T> node, TreeVisitor<T> visitor)
    {
        visitor(node.data);
        foreach (NTree<T> kid in node.children)
            Traverse(kid, visitor);
    }}

簡(jiǎn)單的遞歸實(shí)現(xiàn)...... <40行代碼...你只需要保持對(duì)類(lèi)外部樹(shù)的根的引用,或者將它包裝在另一個(gè)類(lèi)中,也許重命名為T(mén)reeNode?


查看完整回答
反對(duì) 回復(fù) 2019-08-09
  • 3 回答
  • 0 關(guān)注
  • 562 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)