Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    3

    Invertire primo nodo con il terzo della lista???Aiuto...

    Ciao a tutti, Ho una lista lineare sulla quale devo effettuare questa opearzione: Invertire il terzo nodo della lista con il primo...Mi spiego mettiamo la lista sia 1->2->3->4
    dovrei avere 3->2->1->4...Qualkuno puo aiutarmi...??Grazie...

  2. #2
    fai diventare 3 il nodo head. fai puntare 3.next a 1.next, 1.next a 3.next, 3.prev.next a 1.next (se la lista è concatenata doppiamente, cioè se hai il campo prev) oppure devi necessariamente conoscere anche 2 (comunque 2 = 1.next), a quel punto fai 2.next = 1.
    Ovviamente devi aiutarti con variabili d'appoggio per gli scambi.

    Molto più semplice a farlo che a dirlo. Disegna lo schema su un foglio di carta e muovi le frecce, ci arrivi in un niente


  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    3
    Sikkome sono nuovo del forum potresti postarmi tv la realizzazione...??Grazie..Inoltre il next sta per il puntatore al nodo successivo??...Grazie tante
    Inoltre la lista non è circolare..

  4. #4
    Mi spiace ma mi manca il tempo adesso.
    Prova a realizzare almeno una bozza dell'algoritmo da solo, seguendo le istruzioni che ti ho dato, e postalo.

    Sì, next è il puntatore al nodo successivo
    No, non parlavo di liste circolari, ma di liste concatenate doppiamente. Comunque è un altro discorso, se l'esercizio è scambiare 1 con 3, allora puoi evitare di soffermarti sulla questione di scambio di due nodi qualsiasi.

    Ti consiglio di procedere da solo, ma se proprio non ti va, "swap nodes list" come chiave di ricerca su google ti darà diversi risultati credo.


  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    3
    Potresti modicarmi il codice ke mi hai messo facendo riferimento anke a 2..??Nn c'è il campo prev..Grazie..

  6. #6
    comunque 2 = 1.next
    voglio dire che 2 lo conosci gia. infatti 2 è 1.next (ovviamente prima che fai questo: 1.next = 3.next).

    a quel punto fai 2.next = 1
    con questo voglio dire

    codice:
    node due = 1.next;
    due.next = uno // uno è il nodo 1

    Fai attenzione all'ordine degli scambi e a come usi le variabili di appoggio durante lo scambio


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.