八叉樹 C 基礎 原始碼

2021-08-02 20:23:42 字數 2382 閱讀 6662

四叉樹或四元樹也被稱為q樹(q-tree)。四叉樹廣泛應用於影象處理、空間資料索引、2d中的快速碰撞檢測、儲存稀疏資料等,而八叉樹(octree)主要應用於3d圖形處理。

實際的資料結構,就是乙個樹根不斷地往下擴,每次分成八個枝,直到葉子為止。

葉子節點代表了解析度最高的情況。例如解析度設成0.01m,那麼每個葉子就是乙個1cm見方的小方塊

//定義八叉樹節點類

template

struct octreenode

};//建立八叉樹

template

void createoctree(octreenode

*&root, int maxdepth, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)

}int i =

1;//先序遍歷八叉樹

template

void preorder(octreenode

*& p)

}//求八叉樹的深度

template

int depth(octreenode

*& p)

//計算單位長度,為查詢點做準備

int cal(int num)

return result;

}//查詢點

int maxdepth =

0;int times =

0;static double xmin =

0, xmax =

0, ymin =

0, ymax =

0, zmin =

0, zmax =

0;int tmaxdepth =

0;double txm =

1, tym =

1, tzm =

1;template

void find(octreenode

*& p, double x, double y, double z)

if (x <= p->xmin + txm && x >= p->xmax - txm && y <= p->ymin + tym &&

y >= p->ymax - tym && z <= p->zmin + tzm && z >= p->zmax - tzm)

else

if (x < (p->xmax - xmind) && y < (p->ymax - ymind) && z < (p->zmax - zmind))

else

if (x < (p->xmax - xmind) && yymax - ymind) && z>(p->zmax - zmind))

else

if (x > (p->xmax - xmind) && y < (p->ymax - ymind) && z < (p->zmax - zmind))

else

if (x > (p->xmax - xmind) && yymax - ymind) && z>(p->zmax - zmind))

else

if (xxmax - xmind) && y>(p->ymax - ymind) && z < (p->zmax - zmind))

else

if (xxmax - xmind) && y>(p->ymax - ymind) && z > (p->zmax - zmind))

else

if (x > (p->xmax - xmind) && y > (p->ymax - ymind) && z < (p->zmax - zmind))

else

if (x > (p->xmax - xmind) && y > (p->ymax - ymind) && z > (p->zmax - zmind))

}//main函式

int main()

else

if (choiced ==

1)

else

}else

if (choiced ==

2)

else

if (choiced ==

3)

else

if (choiced ==

4)

else}}

二叉樹的C 原始碼

參考著課件,寫了乙個簡單的二叉樹,用法很簡單,方法也很少,要是誰有興趣的話,加上乙個線索二叉樹的方法,就更好了。kakabtree btree a,b,c,d e,f 用廣義表,表示法輸入 btree.preorder 前序遍歷 btree.inorder 中序遍歷 btree.postorder ...

二叉搜尋樹C 實現原始碼

二叉搜尋樹的性質是 對樹中的每個結點x,它的左子樹的值小於x,它的右子樹的值大於x。binarytree.h include utility.h typedef struct treenode ptrtonode typedef struct treenode position typedef st...

STL原始碼閱讀 八

字串的雜湊函式 f s 5 f s 1 s,當len s 1,則f s s 其中s是指向字串的指標。示例 inline size t stl hash string const char s template struct hash sgi hash table碰撞檢測方法是鏈結法,雜湊表的每個槽都...