Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    4

    inserisci elemento in una lista

    Ciao a tutti!!

    non riesco a risolvere questo esercizietto d 'esame..credo sia semplice ma dato che sono alle prime armi ho un pò di difficoltà..

    public static Nodo inserisci(int x, Nodo l) che, dato un intero x e una SCL l ordi-
    nata in modo non decrescente (in cui cioe gli elementi piu piccoli appaiono prima di quelli piu
    grandi), restituisce la SCL modi cata inserendo l'elemento x nella posizione che gli compete
    in modo che la SCL risultante continui ad essere ordinata in modo non decrescente. Ad esem-
    pio, se l contiene f1; 3; 4; 7g e x vale 3, la lista risultante deve essere 1; 3; 3; 4; 7.
    La realizzazione deve essere con side-eff ect in modo che la lista l risulti modi cata dopo l'inserimento.

    Vorrei evitare di risolverlo con ricorsione(l ho già fatto), per comprendere meglio come funzionano queste liste =) qualcuno può darmi una mano??
    grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    4
    public static Nodo inserisci(int x, Nodo l) {
    Nodo p = l;
    if(p == null)
    return new Nodo(x,null);
    if(p.info > x){
    p = new Nodo(x,p.next);
    }
    else{
    while(p.next != null && p.info <= x){
    p = p.next;
    }
    p.next = new Nodo(x,p.next);
    }
    return l;
    }

    così ho tentato di risolverlo io..ma non è la risoluzione giusta dato che a tempo di esecuzione ci sono degli errori nei risultati

  3. #3
    Utente di HTML.it L'avatar di unit1
    Registrato dal
    Feb 2004
    Messaggi
    354
    Per prima cosa ti consiglio di utilizzare i tag, così il codice è illeggibile, poi ti posso dire che è proprio sbagliato il concetto:

    Ti viene che devi, dopo aver verificato che la lista non è null, scorrere la lista fino al punto giusto e poi inserirlo.

    Ti consiglio prima di farlo con la ricorsione, poi in modo iterativo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    4
    scusate, hai ragione.. essendo alle prime armi ed essendo la prima volta che mi registro ad un forum non so neanche come postare il codice rendendolo leggibile =) solitamente lo scrivo su pastebin se devo farlo vedere a qualche compagno..

    con la ricorsione l ho fatto, è piuttosto semplice, saranno 3-4 righe di codice..il mio problema è però proprio farlo in maniera iterativa. IL mio ragionamento è : finchè l'elemento della lista è esistente e minore di x vado avanti, nel momento in cui quest'ultima ipotesi viene a mancare inserisco l'elemento e scalo di una posizione i restanti.. nel caso invece in cui gli elementi della lista siano maggiori di x metto quest'ultimo in testa..a parole credo sia corretto, il problema è che non so tradurlo correttamente in codice, come hai ben visto =)

  5. #5
    Utente di HTML.it L'avatar di unit1
    Registrato dal
    Feb 2004
    Messaggi
    354
    Originariamente inviato da save92
    nel momento in cui quest'ultima ipotesi viene a mancare inserisco l'elemento e scalo di una posizione i restanti.. nel caso invece in cui gli elementi della lista siano maggiori di x metto quest'ultimo in testa
    Mi sembra strano il ragionamento, è lo stesso che hai usato per la ricorsione?
    Per curiosità mi puoi postare quello ricorsivo (usando il tag code)?

    Come ti sembra il mio ragionamento? Ho capito male o devi solo inserire un elemento in una lista ordinata?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324
    Ciao Save2,

    scusami se mi intrometto ma non ho ben capito che cosa realmente vorresti fare? Saresti cosi gentile da rispiegarmelo volendo riesco a darti una mano....

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    4
    codice:
    public static Nodo inserisci(int x, Nodo l){ 
    if (l == null || x <= l.info) 
    return new Nodo(x, l);
     l.next = inserisci(x, l.next);
     return l;
     }
    unit1 : Credo di aver postato in maniera leggibile ora.. ecco come risolvo con ricorsione e mi viene!! però per capire meglio la struttura delle liste mi interessava farlo anche in maniera iterativa.
    Ah comunque non riesco a leggere il tuo ragionamento, non mi compare nella risposta ^^

    manublack : all'inizio della discussione ho postato il testo, praticamente preso in ingresso un intero x ed una SCL con elementi posti in maniera decrescente, devo inserire x nel posto giusto, cioè tale che la SCL rimanga decrescente..

    grazie della disponibilità =)

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.