php分支樹排除某個分支該如何處理?

來源:互聯網
上載者:User

大家好,本人新手。諮詢大家一個問題。

A為金字塔的頂點,下面有初級會員ABCDEF等若干,每個初級會員下面又有初級會員若干,這樣一直排列下去。


如果E1會員身份升級為一級會員,則A可以擷取提成10塊錢。

但如果他的上線也就是B1身份為一級會員,則10塊錢就歸B1.

請問該用何種思路去統計某個時間段內A的提成呢,也就是A的所有分支的提成必須排除掉B1分支裡的會員資料。

回複內容:

大家好,本人新手。諮詢大家一個問題。

A為金字塔的頂點,下面有初級會員ABCDEF等若干,每個初級會員下面又有初級會員若干,這樣一直排列下去。


如果E1會員身份升級為一級會員,則A可以擷取提成10塊錢。

但如果他的上線也就是B1身份為一級會員,則10塊錢就歸B1.

請問該用何種思路去統計某個時間段內A的提成呢,也就是A的所有分支的提成必須排除掉B1分支裡的會員資料。

遍曆A的子節點,如果不是一級會員,就加入一個線性表裡(表示此節點升格,A可以獲得收益),然後繼續遍曆這個節點

//虛擬碼 擷取到A節點可以獲得收益的後輩節點//topNode為節點對象function getAllChilds(object topNode){    static childArr=[];    foreach(topNode->getAllChilds as index=>tempChildNode){        //如果當前節點不為一級節點        if(!tempChildNode->rankIsOne){            array_push(childArr,tempChildNode);            getAllChilds(tempChildNode);        }    }    return childArr;}

不過看題目是某個時間段A的提成,意思好像是節點樹各個節點的rank是會變動的,這個就有點難了
或者在每次節點升格的時候,都算一次收益,以及收益節點,以及時間,寫入資料庫。這樣查詢就只需要一條SQL語句了

遍曆所有節點,把父節點為你要求的一級會員的分支從樹中去掉不就行了麼。……

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.