有關二叉樹的學習

2021-09-22 08:11:17 字數 3007 閱讀 4087

參考部落格:

有關二叉樹需要實現的功能:

有關二叉樹遍歷的知識:

中序遍歷:左 -> 根 -> 右

前序遍歷:根 -> 左 -> 右

後續遍歷:左 -> 右 -> 根

//列印節點資訊

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...