Pagina 8 di 22 primaprima ... 6 7 8 9 10 18 ... ultimoultimo
Visualizzazione dei risultati da 71 a 80 su 217
  1. #71
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    [supersaibal]Originariamente inviato da M4rko
    Non è per niente chiaro quello che ti serve
    [/supersaibal]
    immaginiamo di avere alcuni dati memorizzati tramite l'algoritmo in oggetto, ovvero l'MPTT.
    del codice javascript, usato per visualizzare la struttura con possibilià di espandere i vari rami, richiede invece che questi siamo forniti tramite ALM, ovvero nel ramo figlio deve essere presente il riferimento la ramo padre...gli esempi postati precedentemente andavo appunto in questa direzione


    domani pome proverò ad inventarmi qualcosa


    p.s.:
    avevo visto anch'io la funzione per passare da ALM a MPTT, però non avevo risolto ugualmente.
    think simple think ringo

  2. #72
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    grazie ad un amico ing inf sono riuscito a risolvere il problema:
    codice:
    Vettori adj,mod,nodo_livello
    // adj e mod sono i vettori degli algoritmi e nodo_livello e' un vettore 
    per cui memorizzo il nodo che ho al livello corrente che sto guardando e 
    percio' tutti i padri correnti. Dunque nodo_livello[i] ha nel livello i 
    il nodo attutualmente padre dei nodi dei livelli inferiori che sto guardando
    
    adj[0]=0  //metto il nodo radice e poi parto da 1
    nodo_livello[0]=0;
    for (int i=1;i<mod.length;i++) {
        nodo_livello[mod[i]]=i;
        adj[i]=nodo_livello[mod[i]-1]  //ovvero il padre che si trova nel livello superiore
    }
    think simple think ringo

  3. #73
    [supersaibal]Originariamente inviato da marketto
    grazie ad un amico ing inf sono riuscito a risolvere il problema:
    ...[/supersaibal]
    puoi chiedergli se potrebbe risolvere anche il mio di problema ?

    in pratica ho un sistema perfetto con eccezioni random che vengono fuori sempre sopra un tot numero di rami e che non hanno alcun riscontro logico tra loro ... funziona sempre e bene ... poi ad un certo punto, scaxxa


    vorrei solo trovare un metodo valido, quelli postati non lo sono piu' di tanto, per spostare rami in altri rami, almeno da sinistra a destra, poi l' inverso non dovrebbe essere un problema
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #74
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    [supersaibal]Originariamente inviato da andr3a
    puoi chiedergli se potrebbe risolvere anche il mio di problema ?

    in pratica ho un sistema perfetto con eccezioni random che vengono fuori sempre sopra un tot numero di rami e che non hanno alcun riscontro logico tra loro ... funziona sempre e bene ... poi ad un certo punto, scaxxa


    vorrei solo trovare un metodo valido, quelli postati non lo sono piu' di tanto, per spostare rami in altri rami, almeno da sinistra a destra, poi l' inverso non dovrebbe essere un problema [/supersaibal]
    oki
    think simple think ringo

  5. #75
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    andr3a, questa l'hai vista:
    http://www.phpclasses.org/browse/package/1374.html


    ci sono "alcune" query da eseguire
    think simple think ringo

  6. #76
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    andr3a, il mio amico ha risposto all'appello...nn ha (e non ho) potuto provare il tutto...è ancora scritto in java, se vuoi metterci le mani fai pure. funziona con l'array dei livelli del modified, quindi sempre riprendendo l'esempio di freephp:
    codice:
    massimiliano | 1
    francesco    | 2
    mario        | 3
    luigi        | 3
    fabio        | 3
    piero        | 4
    gianni       | 4


    codice:
    /*Tutti gli algoritmi sono in base alla struttura dati per cui un albero e' rappresentato da un vettore dei livelli di profondita' dell'albero
    in ordine di viitazione di profondita', ovvero in [i] ho il livello di profondita' del nodo i*/
    
    /*sposta un ramo da sinistra a destra
    in [0] ritorna il nuovo albero e in [1] ritorna i nuovi nodi mappati ovvero in [1][i] e' presente il,l nuovo numero del nodo[i]
    lo spostameno avviene copiando i vari pezzi dell'albero in un nuovo albero*/	
    static[][]sposta_ramo( int[]vecchio_albero, int padre_ramo, int nuovo_padre) {
    	int[]nuovo_albero = new int[vecchio_albero.length];
    	int[]nuovi_nodi = new int[vecchio_albero.length];
    	copia_albero_parziale(vecchio_albero, nuovo_albero, nuovi_nodi, 0, padre_ramo-1, 0);
    	int fine_ramo = fine_ramo(vecchio_albero, padre_ramo);
    	int fine_ramo_nuovo_padre = fine_ramo(vecchio_albero, nuovo_padre);
    	copia_albero_parziale(vecchio_albero, nuovo_albero, nuovi_nodi, fine_ramo+1, fine_ramo_nuovo_padre, padre_ramo);
    	copia_ramo(vecchio_albero, nuovo_albero, nuovi_nodi, padre_ramo, nuovo_padre);
    	copia_albero_parziale(vecchio_albero, nuovo_albero, nuovi_nodi, fine_ramo_nuovo_padre+1, vecchio_albero.length-1, nuovi_nodi[fine_ramo]+1;
    	int[][]ritorno;
    	ritorno[0] = nuovo_albero;
    	ritorno[1] = nuovi_nodi;
    }
    
    //trova il nodo finale di un ramo
    int fine_ramo(int[]albero, int padre_ramo) {
        int fine_ramo = padre_ramo;
        int nodo_corrente = fine_ramo+1;
        while (albero[nodo_corrente]>albero[padre_ramo] && nodo_corrente<albero.length) {
           fine_ramo = nodo_corrente;
           nodo_corrente++;
        }
        return fine_ramo;
    }
    
    //copia un intero ramo
    static copia_ramo( int[]vecchio_albero, int[]nuovo_albero, int[]nuovi_nodi, int padre_ramo, int nuovo_padre) {
        int posizione_nuovo_nodo;
        int fine_ramo = fine_ramo(padre_ramo);
        int inizio_nuovo_ramo = fine_ramo(nuovo_albero, nuovi_nodi[nuovo_padre])+1;
        int livello_nuovo_padre = nuovo_albero[nuovi_nodi[nuovo_padre]];
        for (int i = 0;i<= fine_ramo-padre_ramo;i++) {
           posizione_nuovo_nodo = inizio_nuovo_ramo+i;
           nuovo_albero[posizione_nuovo_nodo] = vecchio_albero[i+padre_ramo]-vecchio_albero[padre_ramo] + 1 + livello_nuovo_padre;
           nuovi_nodi[padre_ramo+i] = posizione_nuovo_nodo;
        }
        return;
    }
    
    
    //copia un pezzo di albero e aggiorna i nuovi nodi
    static copia_albero_parziale( int[]vecchio_albero, int[]nuovo_albero, int[]nuovi_nodi, int inizio_ramo, int fine_ramo, int inizio_nuovo_ramo) {
    	int posizione_nuovo_nodo;
    	for (int i = 0;i<=fine_ramo-inizio_ramo;i++) {
           posizione_nuovo_nodo = inizio_nuovo_ramo+i;
           nuovo_albero[posizione_nuovo_nodo] = vecchio_albero[i+inizio_ramo];
           nuovi_nodi[i+inizio_ramo] = posizione_nuovo_nodo;
        }
        return;
    }
    think simple think ringo

  7. #77
    A che punto è la classe?

    Il giochino non si potrebbe avere compatibile con sql e non con sql lite?

  8. #78
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    [supersaibal]Originariamente inviato da mircov
    A che punto è la classe?

    Il giochino non si potrebbe avere compatibile con sql e non con sql lite? [/supersaibal]
    finora le classi che ho provato hanno problemi a spostare i nodi a sx e dx.
    think simple think ringo

  9. #79
    Ma scusate, Celko non ha fornito una soluzione allo spostamento/modifica di una classe? Possibile?

  10. #80
    ho fatto


    non che l' aiuto del tuo gentile amico sia servito a qualcosa, semplicemente non avevo ragionato, dentro le mie operazioni, che da sinistra a destra la SX da spostare e' sempre minore della nuova sx mentre da destra a sinistra la sx da spostare e' sempre maggiore della nuova sx


    in pratica ora sposto tutto quello che caspita mi pare dove mi pare


    pero' vorrei fare tests piu' severi prima di postare il tutto
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.