我們想要使用一棵四叉樹來儲存乙個n x n
的布林值網路。網路中每一格的值只會是真或假。樹的根結點代表整個網路。對於每個結點, 它將被分等成四個孩子結點直到這個區域內的值都是相同的.
每個結點還有另外兩個布林變數:isleaf
和val
。isleaf
當這個節點是乙個葉子結點時為真。val
變數儲存葉子結點所代表的區域的值。
你的任務是使用乙個四叉樹表示給定的網路。下面的例子將有助於你理解這個問題:
給定下面這個8 x 8
網路,我們將這樣建立乙個對應的四叉樹:
由上文的定義,它能被這樣分割:
對應的四叉樹應該像下面這樣,每個結點由一對(isleaf, val)
所代表.
對於非葉子結點,val
可以是任意的,所以使用*
代替。
n
將小於1000
且確保是 2 的整次冪。
/*// definition for a quadtree node.
class node
node(bool _val, bool _isleaf, node* _topleft, node* _topright, node* _bottomleft, node* _bottomright)
};*/
class solution
node* build(vector>& grid, int x, int y, int len) }}
return new node(grid[x][y] == 1, true, null, null, null, null);}};
Leetcode 427 建立四叉樹
我們想要使用一棵四叉樹來儲存乙個 n x n 的布林值網路。網路中每一格的值只會是真或假。樹的根結點代表整個網路。對於每個結點,它將被分等成四個孩子結點直到這個區域內的值都是相同的.每個結點還有另外兩個布林變數 isleaf 和 val。isleaf 當這個節點是乙個葉子結點時為真。val 變數儲存...
四叉樹與八叉樹
前序 四叉樹或四元樹也被稱為q樹 q tree 四叉樹廣泛應用於影象處理 空間資料索引 2d中的快速碰撞檢測 儲存稀疏資料等,而八叉樹 octree 主要應用於3d圖形處理。對遊戲程式設計,這會很有用。本文著重於對四叉樹與八叉樹的原理與結構的介紹,幫助您在腦海中建立四叉樹與八叉樹的基本思想。本文並不...
四叉樹與八叉樹
前序 四叉樹或四元樹也被稱為q樹 q tree 四叉樹廣泛應用於影象處理 空間資料索引 2d中的快速碰撞檢測 儲存稀疏資料等,而八叉樹 octree 主要應用於3d圖形處理。對遊戲程式設計,這會很有用。本文著重於對四叉樹與八叉樹的原理與結構的介紹,幫助您在腦海中建立四叉樹與八叉樹的基本思想。本文並不...