/*
洛谷 p1305
輸入一串二叉樹,用遍歷前序打出。
第一行為二叉樹的節點數n。(n \leq 26n≤26)
後面n行,每乙個字母為節點,後兩個字母分別為其左右兒子。
空節點用*表示
6abc
bdicj*
d**i**
j**
輸出:abdicj
思路:建立乙個節點包含父節點 左兒子 右兒子 的節點(有父節點可以判斷誰是根結點)
*/#includeusing namespace std;
const int inf=0x3f3f3f3f;
const int n=100;
struct node
tree[n];
int cnt;
mapci;
mapic;
void dfs(int x)
else return;
}int main()
else
if(s[1]=='*')
else
else
} if(s[2]=='*')
else
else
} }int id=0;
for(int i=1;i<=cnt;i++)
} dfs(id);
return 0;
}
翻轉一棵二叉樹
問題描述 翻轉一棵二叉樹 示例 輸入 4 2 7 1 3 6 9輸出 4 7 2 9 6 3 1 解法 1.用遞迴來解決 2.首先判斷根是不是空 遞迴出口 3.如果不是空則交換左右子數 4.對左子樹進行遞迴 5.對右子樹進行遞迴 definition for a binary tree node.c...
判斷一棵二叉樹是不是另一棵二叉樹的子樹
定義 父樹包含子樹的所有節點,注意,空樹不是任何數的子樹。父樹 a 子樹 b 解法 用遞迴來實現,從a樹的根節點開始,判斷其所有的節點是不是依次和樹b相同,如不同,遞迴呼叫函式,繼續判斷樹a當前節點的左子樹的所有節點或右子樹的所有節點是否和樹b所有節點相同,直到遍歷到父樹a的葉子節點,如果不是完全相...
由前序和中序確定一棵二叉樹
include include queue using namespace std class binarytreenode class binarytree binarytreenode giveroot binarytreenode create binarytreenode p,char m,...