PDA

View Full Version : [Java] Clonazione profonda alberi


cerza
16-02-2017, 16:21
Salve,
ho un albero con 3 nodi iniziali (a, b, c), dovrei eseguire delle operazioni su ognuno di questi ed aggiungervi a questi gli altri due nodi iniziali clonati. In particolare devo eseguire delle operazioni su "a" e clonare "b" e "c".

La clonazione la faccio in questo modo:
public Object clone() throws CloneNotSupportedException {
Nodo clonedNode = null;
try {
clonedNode = (Nodo) super.clone();


if (this.getFather() != null) {

INodo padreClonato = (INodo) clonedNode.getFather().clone();

clonedNode.setFather(padreClonato);
}

} catch (CloneNotSupportedException e) {
logger.debug("Eccezione nella clonazione " + e);
}
return clonedNode;
}

Praticamente clono dal nodo foglia fino alla radice, senza preoccuparmi delle altre caratteristiche del nodo che non mi serve portare avanti. L'esecuzione delle operazioni sul nodo "a" mi porterà in un nuovo insieme costituito dai nodi (x, b clonato , c clonato) dove x è il risultato di a. Quest'ultima esecuzione viene fatta in modo ricorsivo, ma accade qualcosa di strano perché senza aver eseguito alcuna operazione sul nodo "b", questi ha già figli che non dovrebbe avere.
C'è qualcuno che riesce a darmi una mano a capire dove sbaglio?
Grazie

Hardware Upgrade Forum Database Error
Database Error Database error
The Hardware Upgrade Forum database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.hwupgrade.it home page, then try to open another page.
  • Click the Back button to try another link.
The www.hwupgrade.it forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.