資料結構之二叉樹基礎二

2021-07-29 00:26:28 字數 1030 閱讀 9046

#include #include #include #include #include using namespace std;

struct btnode

;typedef struct btnode;

int depth(btnode* root)

int n1=depth(root->lc);

int n2=depth(root->rc);

return n1>n2?1+n1:1+n2;

}//平衡二叉樹的判斷

bool isbanlance(btnode *root)

int n1=depth(root->lc);

int n2=depth(root->rc);

if(abs(n1-n2)<=1)

else

}//二叉樹的子結構判斷

bool checkifsubtree(btnode *root1,btnode *root2)

//判斷兩個二叉樹是不是映象

bool checkifimage(btnode *root1,btnode *root2)

//判斷是不是映象二叉樹,乙個二叉樹

bool symmetric(btnode *root)

//求二叉樹的映象二叉樹

void mirror(btnode* root)

if (root->lc != null)

if (root->rc != null)

}}char str[1000];

int j=0;

//序列化->前序遍歷字串

char* serialize(btnode *root)

return str;

}int i=0;

btnode* creat(char *str)

return p;

}//反序列化->根據前序字串構造二叉樹

btnode* deserialize(char *str)

int main()

資料結構之二叉樹

在二叉樹中每個節點最多只能有兩個子節點。即左子節點和有子節點。在二叉樹中最重要的操作應當是遍歷。即按照某一順序訪問二叉樹中的每乙個節點。一般有如下幾種遍歷方法 1 前序遍歷,即先訪問根幾點,然後再訪問左子節點,最後訪問右子節點。2 中序遍歷,即先訪問左子節點,然後再訪問根節點,最後訪問右子節點。3 ...

資料結構之二叉樹

定義 滿足以下條件的就是樹 1.有且僅有乙個特定的稱為根root的結點。2.當n 1時,其餘結點可分為m m 0 個互不相交的有限集,其中每個集合本身又是乙個棵樹,並稱為根的子樹。樹是資料結構中一種常見的資料結構,比如我們排序中常見的二叉樹,紅黑樹等。最常見的是樹形表示法和廣義表表示法。樹的結構示意...

資料結構之二叉樹

來看一下樹的結構 class treenode public treenode string value 首先,為了方便後面看到效果,先手動初始化乙個有4個節點的二叉樹 tree tree new tree treenode root new treenode root treenode node1...