參考部落格:有關二叉樹需要實現的功能:
有關二叉樹遍歷的知識:中序遍歷:左 -> 根 -> 右
前序遍歷:根 -> 左 -> 右
後續遍歷:左 -> 右 -> 根
//列印節點資訊
public
void
dispaly()
}
public
inte***ce
tree
public
class
binarytree
implements
tree
else
if(current.data < key)
else
}return null;}/*
插入原則:
右子樹比根大
左子樹比根小
*/@override
public
boolean
insert
(int data)
else
}else}}
}return
false;}
//中序遍歷
@override
public
void
infixorder
(node current)
}//前序遍歷
@override
public
void
preorder
(node current)
}//後續遍歷
@override
public
void
postorder
(node current)
}//最右下角的就是最大值
@override
public node findmax()
return maxnode;
}//最左下角的就是最下值
@override
public node findmin()
return minnode;
}@override
public
boolean
delete
(int key)
else
if(current == null)
}//如果當前節點沒有子節點
if(current.leftchild == null && current.rightchild == null)
else
if(isleftchild)
else
return
true;}
else
if(current.leftchild == null && current.rightchild != null)
else
if(isleftchild)
else
return
true;}
else
if(current.leftchild != null && current.rightchild == null)
else
if(isleftchild)
else
return
true;}
else
else
if(isleftchild)
else
}return
false;}
public node getsuccessor
(node delnode)
if(successor != delnode.rightchild)
return successor;
}//求深度
@override
public
intgetmaxdepth
(node node)
else
}//求某層的節點數
/** * 思路:求第四層的深度時,我先求第三層,求第三層我就先求第二層
** @param node
* @param tree
* @return
*/@override
public
intget_cen_jieidan
(node node,
int tree)
if(tree ==1)
int left_num =
get_cen_jieidan
(node.leftchild, tree -1)
;int right_num =
get_cen_jieidan
(node.rightchild, tree -1)
;return left_num + right_num;
}//求二叉樹的映象
@override
public
void
qiujingxiang
(node node)
node tempnode = node.leftchild;
node.leftchild = node.rightchild;
node.rightchild = tempnode;
if(node.leftchild != null)
if(node.rightchild != null)
}public
static
void
main
(string[
] args)
}
有關二叉樹的計算
1 第i層,至多2 i 1 個結點 2 深度為k,至多2 k 1個結點 3 任意一棵二叉樹,都滿足n0 n2 1 它的推導有利於做其它類似的計算題 結點數n n0 n1 n2 除了根結點n 1 0 n0 1 n1 2 n2 以上可推導出n0 n2 1。4 n個結點的二叉樹,其深度 log2 n 1 ...
二叉樹 二叉樹
題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...
有關二叉樹的簡單實現
include include includeusing namespace std templatestruct binarytreenode t data binarytreenode left binarytreenode right templateclass binarytree bina...