求一棵二叉樹的映象
二叉樹的映象就是將二叉樹的左右子樹都交換位置得到的一棵二叉樹。所以我們可以通過遞迴來解決。
下邊給出**實現:
void _mirror(node* root)
下邊給出完整的測試**:
#pragma once
#includeusing namespace std;
#include#includetemplatestruct treenode
};templateclass binarytree
//求二叉樹的映象
void mirror()
void preorderr()
node* top = s.top();
s.pop();
cur = top->_right;
}cout<_left _create>
root->_right = _create(a,size,++index,invalid);
}return root;
}void _preorderr(node* root)
void _mirror(node* root)
size_t _depth(node* root)
private:
node* _root;
};void test()
; binarytreebt(array,sizeof(array)/sizeof(array[0]),'#');
bt.preordernonr();
bt.preorderr();
bt.mirror();
bt.preordernonr();
bt.preorderr();
cout<
}
輸入一棵二叉樹,求樹的深度
題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。輸入 第一行輸入有n,n表示結點數,結點號從1到n。根結點為1。n 10。接下來有n行,每行有兩個個整型a和b,表示第i個節點的左右孩子孩子。a為左孩子,b為右孩子。當a...
翻轉一棵二叉樹
問題描述 翻轉一棵二叉樹 示例 輸入 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的葉子節點,如果不是完全相...