左孩子右兄弟的字典樹

2022-02-13 22:38:20 字數 763 閱讀 3189

一般寫的字典樹都是雙陣列的形式,但是當字元的數量很多時,就會占用大量的記憶體,初始化操作也會變慢。這時,就可以用左孩子右兄弟的寫法,來以時間換空間。

下面是自己寫的乙個:

1 #include 2 #include 3 #include 4

5using

namespace

std;67

const

int maxnode=100000;8

9struct

trie

1016

void

init()

1723

24void insert(const

char*str)

2533

if(j==0)///

a new node

3441 u=j;42}

43 flag[j]=true;44

}4546bool query(const

char*str)

4755

if(j==0) return

false

;56 u=j;57}

58return

flag[j];59}

6061

}tree;

6263

intmain()

6474

else

if(d==2)75

78}79return0;

80 }

3422 左孩子右兄弟

對於一棵多叉樹,我們可以通過 左孩子右兄弟 表示法,將其轉化成一棵二叉樹。如果我們認為每個結點的子結點是無序的,那麼得到的二叉樹可能不唯一。換句話說,每個結點可以選任意子結點作為左孩子,並按任意順序連線右兄弟。給定一棵包含 n 個結點的多叉樹,結點從 1 至 n 編號,其中 1 號結點是根,每個結點...

左孩子右兄弟表示法的任意有根樹的遍歷

演算法導論 p.248 10.4 4題目描述 對於乙個含n個結點的任意有根樹,寫出乙個o n 時間的過程,輸出其所有關鍵字,該樹以左孩子右兄弟表示法儲存。與二叉樹的遍歷類似 class tree def init self,val self.val val self.left child none ...

把二叉樹轉變為左孩子右兄弟樹

erchatoshu.cpp 定義控制台應用程式的入口點。include stdafx.h include includeusing namespace std 二叉樹節點結構 typedef struct treenode position typedef struct treenode sear...