427 建立四叉樹

2021-09-01 02:39:01 字數 1105 閱讀 7817

我們想要使用一棵四叉樹來儲存乙個n x n的布林值網路。網路中每一格的值只會是真或假。樹的根結點代表整個網路。對於每個結點, 它將被分等成四個孩子結點直到這個區域內的值都是相同的.

每個結點還有另外兩個布林變數:isleafvalisleaf當這個節點是乙個葉子結點時為真。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圖形處理。對遊戲程式設計,這會很有用。本文著重於對四叉樹與八叉樹的原理與結構的介紹,幫助您在腦海中建立四叉樹與八叉樹的基本思想。本文並不...