Pages: [1]   Go Down
Print
Author Topic: Problema IterPreorder  (Read 1207 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Mastrolindo
Matricola
*
Offline Offline

Posts: 6


« on: 22-08-2013, 15:53:21 »

Qualcuno ha il codice funzionante dell'iterPreorder? non riesco a capire dove sbaglio....

di seguito i codici che ho modificato..


//nella pila
public boolean push(NBST val)
    {
     if(isfull())return false;
       elem[top++]=val.info;
       return true;   
    }
   
    public NBST pop()
    {
        NBST p=null;
        if(isempty()) return null;
        else return p=new NBST(elem[--top]);
    }



public void preorder()
    {
        NBST p=root;
        Pila help=new Pila();
        if(p!=null)
        {
            help.push(p);
            while(!help.isempty())
            {
               
                p=(NBST) help.pop();
                System.out.println(p.visit());
                if(p.right !=null) help.push(p.right);
                if(p.left != null) help.push(p.left);
            }
        }
    }

grazie in anticipo
Logged
W_doppio
Matricola
*
Offline Offline

Gender: Male
Posts: 99



WWW
« Reply #1 on: 23-08-2013, 11:05:26 »

Qualcuno ha il codice funzionante dell'iterPreorder? non riesco a capire dove sbaglio....

di seguito i codici che ho modificato..


//nella pila
public boolean push(NBST val)
    {
     if(isfull())return false;
       elem[top++]=val.info;
       return true;   
    }
   
    public NBST pop()
    {
        NBST p=null;
        if(isempty()) return null;
        else return p=new NBST(elem[--top]);
    }



public void preorder()
    {
        NBST p=root;
        Pila help=new Pila();
        if(p!=null)
        {
            help.push(p);
            while(!help.isempty())
            {
               
                p=(NBST) help.pop();
                System.out.println(p.visit());
                if(p.right !=null) help.push(p.right);
                if(p.left != null) help.push(p.left);
            }
        }
    }

grazie in anticipo


Ti riporto il codice ufficiale della visita iterativa per un BST:

protected void iterPreorder(){
   IntBSTNodo p = root;
   Pila aiuto = new Pila();
   if (p != null){
      aiuto.push(p);
      while (!aiuto.isEmpty()){
         p = (IntBSTNodo) aiuto.pop();
         p.visit();   // da gestire !!
         if (p.right != null) aiuto.push(p.right);
         if (p.left != null) aiuto.push(p.left);
      }
   }
}
Logged

"Se qualcosa può andare storto, lo farà". (Legge di Murphy)
Mastrolindo
Matricola
*
Offline Offline

Posts: 6


« Reply #2 on: 25-08-2013, 16:11:09 »

questo codice è preso dalle slide del corso...sono partito pure io da questa base ma la riga

p=(Intbstnode) aiuto.pop(); mi da errore...è quello il mio problema..
Logged
W_doppio
Matricola
*
Offline Offline

Gender: Male
Posts: 99



WWW
« Reply #3 on: 03-09-2013, 00:22:28 »

questo codice è preso dalle slide del corso...sono partito pure io da questa base ma la riga

p=(Intbstnode) aiuto.pop(); mi da errore...è quello il mio problema..
hai controllato se hai commesso qualche errore di sintassi case-sensitive? Che errore ti da?
Logged

"Se qualcosa può andare storto, lo farà". (Legge di Murphy)
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #4 on: 03-09-2013, 00:51:09 »

Il codice esibito da W_doppio è identico a quello di Mastrolindo.

Visto che ancora sei al tuo terzo messaggio, chiuderò un occhio, perché probabilmente non sai ancora come si fa a descrivere bene un problema.

La cosa migliore, quando c'è un "errore" (generico), è di scrivere sul forum non solo il codice completo di tutti i sorgenti interessati (tutti, sì, ho detto proprio tutti), ma anche di scrivere l'output del compilatore (per gli errori di compilazione) oppure l'output del programma quando c'è l'errore (se è un errore di run-time).

Con i soli dati che hai fornito, non possiamo dirti (né io né nessun altro) nulla di utile .

Orsù, scrivi pure, in risposta, tutto quello che può esserci d'aiuto! univ

Buona notte 
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Pages: [1]   Go Up
Print
Jump to: