資料結構和演算法 二叉樹建立和遞迴遍歷

2021-07-24 11:55:29 字數 897 閱讀 7632

//完全二叉樹的建立以及遍歷(遞迴)

#include #include //定義資料型別

typedef int datatype_t;

//定義結構體

typedef struct nodebitree_t;

//建立乙個二叉樹(n表示結點總數,i表示根結點)

bitree_t *bitree_create(int n, datatype_t i)

else

if(2 * i + 1 <= n)

else

return bt;

}//先序遍歷

int bitree_before_order(bitree_t *root)

printf("%d ", root->data);

if(root->lchild != null)

if(root->rchild != null)

return 0;

}//中序遍歷

int bitree_in_order(bitree_t *root)

if(root->lchild != null)

printf("%d ", root->data);

if(root->rchild != null)

return 0;

}//後序遍歷

int bitree_after_order(bitree_t *root)

if(root->lchild != null)

if(root->rchild != null)

printf("%d ", root->data);

return 0;

}int main(int argc, const char *argv)

資料結構之二叉樹的遞迴建立和遍歷

這裡,得先明白樹的概念 摘自 維基百科 在電腦科學中,樹 英語 tree 是一種抽象資料型別 adt 或是實作這種抽象資料型別的資料結構,用來模擬具樹狀結構性質的資料集合。它是由n n 1 個有限節點組成乙個具有層次關係的集合。把它叫做 樹 是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下...

資料結構複習 鏈式二叉樹建立和遞迴遍歷

二叉鍊錶中,每個結點除了儲存本身的資料外,還應該設定兩個指標域left和right,它們分別指向左孩子和右孩子。當需要在二叉樹中經常尋找某結點的雙親,每個結點還可以加乙個指向雙親的指標域parent,這就是三叉鍊錶,下面的兩幅圖分別就是,二叉鍊錶和三叉鍊錶的資料結構 和 二叉樹的結構有一些性質來用於...

資料結構 二叉樹的遞迴與非遞迴建立和遍歷

下面 所用到的測試用例畫成樹的樣子長這樣 建立樹時給的是陣列,用 代表非法值,即該結點為空。二叉樹的遞迴實現 pragma once include includeusing namespace std templatestruct binarytreenode t value binarytree...