Я пишу код, возвращающий родительский элемент любого узла, но застрял. Я не хочу использовать предопределенные ADT.
Код: Выделить всё
//Assume that nodes are represented by numbers from 1...n where 1=root and even
//nos.=left child and odd nos=right child.
public int parent(Node node){
if (node % 2 == 0){
if (root.left==node)
return root;
else
return parent(root.left);
}
//same case for right
}
Но эта программа не работает и дает неправильные результаты. Мой основной алгоритм заключается в том, что программа запускается из корня и проверяет, находится ли он слева или справа. Если это дочерний элемент или узел, к которому был запрошен else, рекурсивно обращается к дочернему элементу.
Подробнее здесь:
https://stackoverflow.com/questions/123 ... inary-tree