public void insprimoSottoAlbero(Nodo u, Albero a) { if (checkNode(u)) throw new EccezioneNodoInvalido(); if (a.alberoVuoto()) throw new AlberoVuotoException("Albero che si sta innestando è vuoto"); NodoPFFS z = (NodoPFFS) u; ((NodoPFFS) a.radice()).succ = z.primo; z.primo = (NodoPFFS) a.radice(); ((NodoPFFS) a.radice()).padre = z; ((AlberoPFFS) a).radice = null; // modifico l'appartenenza dei nodi di a updateIdAlbero(z.primo); }
public void insSottoAlbero(Nodo fratello, Albero a) throws EccezioneNodoInvalido { if (checkNode(fratello)) throw new EccezioneNodoInvalido(); if (a.alberoVuoto()) return; NodoPFFS tmp = ((NodoPFFS) fratello).succ; ((NodoPFFS) fratello).succ = (NodoPFFS) a.radice(); aggiornaRiferimenti(((NodoPFFS) fratello).succ); ((NodoPFFS) fratello).succ.succ = tmp; ((NodoPFFS) fratello).succ.padre = ((NodoPFFS) fratello).padre; ((AlberoPFFS) a).radice = null; }