映象二叉樹與二叉樹的區別是左右孩子對於根節點的相對大小剛好相反不用建立映象樹,通過對原樹的映象便歷,即可得到所需的東西。後序:樹 lr根,映象 rl根。如果創立映象二叉樹,insert()改一下即可,這樣可以把preordermirror()等去掉。
對於遍歷後的排序放到vector陣列裡便於比較,而且進行格式控制輸出的時候也方便。
#include#includeusing namespace std;
struct node;
void insert(node* &root,int x)
if(xdata) insert(root->left,x);
else insert(root->right,x); }
void preorder(node* root,vector&vi)
void preordermirror(node* root,vector&vi)
void postorder(node* root,vector&vi)
void postordermirror(node* root,vector&vi)
vectororigin,pre,prem,post,postm;
int main()
preorder(root,pre);
preordermirror(root,prem);
postorder(root,post);
postordermirror(root,postm);
if(origin==pre)
} else if(origin==prem)
}else
puts("no");
return 0;
}
映象二叉樹
題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。思路 1 獲取源二叉樹的映象,將源二叉樹的左右子樹交換即可 2 主要步驟 若二叉樹為空,直接返回 若二叉樹不為空,交換其左右子樹 遞迴的將二叉樹的其他結點進行交換 public class treenode public class soluti...
二叉樹12 二叉樹的映象
題目 操作給定的二叉樹,將其變換為源二叉樹的映象。輸入描述 思路 首先要理解業務邏輯,何為映象?所謂映象就是對於任何乙個結點,將其左右子樹進行交換即可。對於一棵以root為根結點的二叉樹,要將其映象,首先將其左右子樹 root.left為根的子樹 和 root.right為根的子樹 進行映象,然後將...
二叉樹應用 二叉樹映象(對稱)
題目 完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。如 分析 對於乙個二叉樹的映象過程,我們可以先前序遍歷這棵樹的每乙個節點,如果遍歷到的節點有子節點,就交換它的兩個子節點。當交換完所有的飛葉子節點之後,就得到了樹的映象。具體實現 struct treenode void mirrorrecur...