判斷一棵二叉樹是否是平衡二叉樹 求一顆二叉樹的映象

2021-08-04 13:20:34 字數 1478 閱讀 6496

這道題目一共兩問,其一如何判斷一顆二叉樹是否是平衡二叉樹?平衡二叉樹指任意一父節點左右字數高度差不大於1,就是說<=1即可。高度,自然有乙個求屬深度的方法,所以有了如下內容:

bool isbalance()

int depth()

int _depth(node* root)

bool _isbalance(node* root)

第二問,求一棵樹的映象?也就是說每乙個節點對映到對應的相反的位置。

void binarymirror1()

void binarymirror2()

}void _binarymirror(node* root)

}

兩個問題的完整**

#define _crt_secure_no_warnings 10

#include

#include

#include

using

namespace

std;

template

struct treenode

};template

class tree

tree(const t* arr, size_t size, const size_t invalued)

void prevorder()

bool isbalance()

int depth()

void binarymirror1()

void binarymirror2()

}protected:

void _createtree(node*& root,const t arr, size_t size, size_t& index, t invalued)

}void _prevorder(node* root)

int _depth(node* root)

bool _isbalance(node* root)

void _binarymirror(node* root)

}private:

node* _root;

};int main()

; int size = sizeof(arr) / sizeof(arr[10]);

tree tree(arr,10,'#');

tree.prevorder();

if (int ret = tree.isbalance())

cout

<< "ture"

<< endl;

else

cout

<< "false"

<< endl;

tree.binarymirror2();

tree.prevorder();

system("pause");

return

0;}

判斷一棵二叉樹是否是平衡二叉樹

思路 遞迴方式判斷,返回的資訊應該有兩個 1 這棵樹是否是平衡的 2 這棵樹的高度為多少 public class isbalancedtree public static class returndata public static returndata process node head ret...

如何判斷一棵二叉樹是否是平衡二叉樹

平衡二叉樹的定義,如果任意節點的左右子樹的深度相差不超過1,那這棵樹就是平衡二叉樹。演算法思路 先編寫乙個計算二叉樹深度的函式getdepth,利用遞迴實現 然後再遞迴判斷每個節點的左右子樹的深度是否相差1 static int getdepth binnode root 注意這裡的 1,對應於ro...

二叉樹 判斷一棵樹是否是平衡二叉樹

平衡二叉樹 空樹或者左右兩個孩子高度差不超過1 在涉及到二叉樹的題目時,遞迴函式非常好用 列出可能性 整理出返回值的型別 整個遞迴過程按照同樣的結構得到子樹的資訊,整合子樹的資訊,加工出應該返回的資訊,向上返回 1.左子樹是否平衡 2.右子樹是否平衡 3.左子樹的高度 4.右子樹的高度 根據可能性,...