Junior — Middle
Ist ein binärer Baum ein ausgeglichenes strukturelles Zustand?
sobes.tech KI
Antwort von AI
Ein binärer Baum ist an sich nicht notwendigerweise eine ausgeglichene Struktur. Ein ausgeglichener binärer Baum ist ein Baum, bei dem die Höhen der linken und rechten Teilbäume jedes Knotens höchstens um 1 variieren. Diese Eigenschaft sorgt für einen effizienten Zugriff, Einfügen und Löschen von Elementen.
Wenn ein binärer Baum nicht ausgeglichen ist, kann er im schlimmsten Fall zu einer Struktur werden, die einer verketteten Liste ähnelt, was die Leistung der Operationen verschlechtert.
Beispiel für eine Überprüfung der Ausgeglichenheit in Go (vereinfacht):
func isBalanced(root *TreeNode) bool {
if root == nil {
return true
}
leftHeight := height(root.Left)
rightHeight := height(root.Right)
if abs(leftHeight - rightHeight) > 1 {
return false
}
return isBalanced(root.Left) && isBalanced(root.Right)
}
func height(node *TreeNode) int {
if node == nil {
return 0
}
leftHeight := height(node.Left)
rightHeight := height(node.Right)
if leftHeight > rightHeight {
return leftHeight + 1
}
return rightHeight + 1
}
func abs(a int) int {
if a < 0 {
return -a
}
return a
}
Daher kann ein binärer Baum sowohl ausgeglichen als auch nicht ausgeglichen sein, abhängig von seiner Struktur und den Regeln für den Aufbau.