二叉樹的相關程式

2021-08-21 04:22:55 字數 1538 閱讀 5432

前序建立

void precreate(binary &root, string &str, int &i)

else if (str[i] == '#')

else

} 遍歷(前中後)

前序非遞迴

void prebianli1(binary &root)

} 中序非遞迴

void midbianli1(binary &root)

if (!s.empty())

} }

後序非遞迴

void lastbianli1(binary &root)

if (!s.empty())

else

} } while (!(s.empty())); }

層次遍歷

void levelbianli1(binary root)

} 求二叉樹的高度

int deep(binary root)

求樹的寬度

int width(binary &root)

if (temp->right != null)

if (front > last)

count = 0; }

}return sum; }

、、、、、、、、、先序中序&中序後序建立樹

void pre_mid_create(binary &root,char *str1, char *str2, int len)//str1前 str2中

root = new btnode();

root->val = ch;

pre_mid_create(root->left, str1+1, str2, index);

pre_mid_create(root->right, str1 + index + 1, str2 + index + 1, len - index - 1); }

void mid_back_create(binary &root, char *str1, char *str2, int len)//str1中 str2後

char ch = str2[len - 1];

int index = 0;

while (ch != str1[index])

root = new btnode();

root->val = ch;

mid_back_create(root->left, str1, str2, index);

mid_back_create(root->right, str1 + index + 1, str2 + index, len - index-1); }

、、、、、、、、、、其他問題

判斷平衡樹

bool balance_tree(binary &root)

構造映象樹

void reserver_tree(binary &root)//每個節點在自己父節點下左右交換

} void reserver_tree1(binary &root)(遞迴寫法)

二叉樹 二叉樹的相關操作

遞迴實現 建立求樹高 求葉子數 求節點數 統計度為2的結點個數 後序輸出 先序輸出 中序輸出 交換左右子樹 include include include define true 1 define false 0 define ok 1 define error 0 define overflow ...

二叉樹相關

1.首先建立乙個樹節點,節點有值,左節點和右節點 author 張夢楠 title package description date 2018 5 2519 27 blog www.itzmn.com 樹的節點類 public class treenode public treenode int v...

二叉樹相關

廣度優先遍歷 對於每層的節點,放到乙個用來處理節點佇列裡,另外每個佇列對應乙個vector,將每層節點放進vector 對於每個佇列,彈出先放的元素q.front,將這個元素放進vector,隨後,將左節點和右子節點放進佇列 class solution queue q q.push root wh...