建立一棵二叉樹 輸出前序

2021-09-24 13:41:27 字數 715 閱讀 8293

/*

洛谷 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,...