前序建立
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...