Exemple #1
0
  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);
  }
Exemple #2
0
  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;
  }