判斷二叉樹是否平衡 是否完全二叉樹 是否二叉排序樹

2021-09-08 08:53:58 字數 848 閱讀 1968

1.判斷二叉樹是否平衡

//

求樹的高度

int treedepth(node*t)

return0;

}//判斷二叉樹是否平衡

int isbalanced(node*t)

2.判斷二叉樹是否相同

//

判斷兩棵二叉樹是否相同

int comptree(node* tree1, node*tree2)

//

拷貝二叉樹

void copytree(node* s,node* &d)

3.判斷二叉樹是否完全二叉樹

判斷二叉樹是否是完全二叉樹:層次遍歷二叉樹,遍歷的左右節點入佇列。若出佇列的結點為空,則以後出佇列的結點都為空,則為完全二叉樹,否則不是

int complatetree(node*bt)

return1;

}

4.判斷二叉樹是否二叉排序樹

判斷二叉樹是否是二叉排序樹(bst):根據中序遍歷序列是否公升序來判斷

bool isbinarysorttree(node*bt)

else

}return

true; //

二叉排序樹

}

判斷二叉樹是否是二叉排序樹(bst):層次遍歷二叉樹,若出佇列的結點小於左結點的值,或者是大於右結點的值,則不是bst,否則是bst

bool isbst(node*t)

return

true

;}

判斷二叉樹是否為平衡二叉樹

一 線性思維 遍歷每個節點都時候,求左右子樹的深度,如果左右子樹深度相差不超過1,繼續遞迴遍歷左右節點,此種方法會重複遍歷,時間效率不高 is balanced t if t is null return true left treedepth t.left right treedepth t.ri...

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

二叉樹的節點定義為 public class treenode 二叉樹的深度 根節點到葉節點的最長路徑長度 平衡二叉樹 二叉樹中任一節點的左右子樹的深度相差不超過1 遞迴的方法 如下 public boolean isbalanced treenode root intleft getheight ...

判斷二叉樹是否為平衡二叉樹

題目 平衡二叉樹的性質為 要麼是一棵空樹,要麼任何乙個節點的左右子樹高度差的絕對值不超過1。給定一棵二叉樹的頭結點head,判斷這棵二叉樹是否為平衡二叉樹。要求 如果二叉樹的節點數為n,要求時間複雜度為o n 判斷二叉樹是否為二叉樹 public boolean isbalance node hea...