資料結構 樹的建立(井號法)

2021-09-08 22:35:19 字數 1397 閱讀 4531

//

樹的建立--井號法建立樹

#define _crt_secure_no_warnings#include

#include

#include

typedef

struct

_treenodetreenode, *treenodepointer;

/*單純的先序遍歷結果,中序遍歷結果,後序遍歷結果都無法還原一棵二叉樹,

必須用中序結果+先序結果---或者中序結果+後序結果 兩兩結合才能還原一棵樹

井號法建立樹思想:

將乙個樹所有的結點都補成二叉,沒有節點的地方用#代替,用先序遍歷的結果還原一棵二叉樹

*///

建立樹treenodepointer createtree()

//建立根節點

treenodepointer root = (treenodepointer)malloc(sizeof

(treenode));

//初始化

memset(root, 0, sizeof

(treenode));

//結點賦值

root->data =ch;

root->leftchild =createtree();

root->rightchild =createtree();

return

root;}//

銷毀樹--後序遍歷銷毀(結點刪除了怎麼找左子樹,右子樹啊)

void destroytree(treenodepointer *root)

treenodepointer temp = *root;

//銷毀左子樹

if (temp->leftchild!=null)

//銷毀右子樹

if (temp->rightchild!=null)

//銷毀根結點

free

(temp);

temp =null;

*root =null;}//

中序遍歷樹

void

inoder(treenodepointer root)

//遍歷左子樹

if (root->leftchild!=null)

//遍歷根結點

printf("

%c", root->data);

//遍歷右子樹

資料結構 多叉樹的建立

我有這麼個需求,是一張地區表,地區表中包含多層級的地區,如 中國,河北省,邢台市,橋東區。一共有4個層級。資料庫字段設計為 idparentid name level 編號父id 地區名等級 我要講這些資料轉為 有層級關係的json資料 很顯然資料的結構是個樹,於是就要建立樹的結構 節點 node....

資料結構 回溯法與樹的遍歷

回溯法求冪集 深度優先遍歷解空間 include include using namespace std void getpowerset const vector srcvec,vector dstvec,int i else int main 回溯法求解n皇后問題 include include...

資料結構 哈弗曼樹的建立

哈弗曼樹的建立 帶權路徑長度的計算 include include include include include using namespace std typedef structhtnode,huffmantree 選擇所有節點中權重最小的兩個節點的下標 void selectmin huff...