我很難掌握如何迭代八叉樹或四元組。這可能是因爲我沒有經歷過不同的迭代神話。但假設我生成了一個包含float x,y,z的四叉樹;雙色。現在,我們還要說,這個節點一次只能產生4個孩子(並且這些孩子可以產生4個孩子等等),直到達到7個級別(以便孩子不能再創造孩子,但是它的孩子兄弟/姐妹可以),所有4個孩子創建的dword顏色是相同的(如果發生這種情況,它的兄弟姐妹仍然可以生產),或者創建的總節點等於87380.當上述情況發生時,容器。這個過程還在繼續。如何迭代四/十進制樹
現在這個容納節點的容器是(例如)7層深的,兒童的所有孩子都有不同的x,y,zs和顏色。我遇到的問題是我如何迭代這個容器,我怎麼能通過所有的孩子,姐妹?由於根可以導致4個孩子,並且這4個孩子有4個孩子等等,等等:4^1 + 4^2 .... + 4^7。如何在不編寫複雜if語句的情況下找到我想要的節點,並遍歷整個節點(從根開始)?容器(產生節點的那個容器)是否需要額外的代碼來讓這個過程變得簡單?
對不起,如果問題是一般的。
哇,這真的有很大的幫助。我現在完全理解這種容器背後的邏輯!它非常有意義:)。還有其他方法可以超快速地在樹上找到一個點嗎?還是僅僅是這樣?我也想知道,如果你殺了一個分支節點,你怎麼讓其中一個孩子接管? – User 2012-07-15 01:05:14
還有很多其他方法 - 請參閱http://en.wikipedia.org/wiki/Spatial_index。當樹內有點時,刪除節點並不容易 - 這就是大多數人將它們放在葉子上的原因。但它可能可以完成,只是棘手。 – 2012-07-15 02:34:22