Inserimento in lista

di il
5 risposte

Inserimento in lista

Ciao! Ho a disposizione questo codice
struct nodo
{
int valore;
nodo *succ;
};

class lista
{
nodo *l;

nodo* insert(nodo *p,int x);      // versione ricorsiva
bool find(nodo *, int);
nodo* split(nodo *l1);
nodo* Merge(nodo *l1, nodo *l2);
nodo* MergeSort(nodo *list);

public:
lista(){l=0;}
~lista();
void push(int);
bool cancella(int);
void stampa();
bool trova(int);
void ordina();
};

dove la funzione membro push può essere implementata come iterativa o ricorsiva. Volevo sapere come faccio nel main a poter creare una lista di k elementi con k dato in ingresso. Grazie!

5 Risposte

  • Re: Inserimento in lista

    Scusami come fai ad inserire un valore in una lista ? devi creare l' oggetto istanza della classe lista poi per ogni valore chiami la sua funzione membro push .
    
    int main () {
       int val;
       lista x;
       srand(time(NULL));
       for ( int i = 0 ; i < 10 ; i ++ ) {
                val = rand()% 50;
                x.push(val);
       }
      return 0 ;
    }
    
  • Re: Inserimento in lista

    Scusa ma non ho capito bene la parte all'interno del for. Potresti spiegarti meglio?
  • Re: Inserimento in lista

    Come fai ad inserire un elemento nella lista dato un oggetto della classe ?
  • Re: Inserimento in lista

    Un possibile codice potrebbe essere questo?
    int main() {
       int val,n;
       Lista x[10];
       cout << "Quanti elementi vuoi inserire? " << endl;
       cin >> n;
       for (int i=0;i<n;i++) {
            cout << "Elemento: ";
            cin >> x[i].push(val);
       }
  • Re: Inserimento in lista

    MMmm forse non hai capito bene la lista . Perchè dichiari un array di Lista? cioè è come se dichiarassi 10 liste , con un oggetto tu hai già una lista il primo elemento lo inserirai con
    
    x.push(primoelemento);
    
    il secondo con
    
    x.push(secondoelemento);
    
    non ha senso l' array , è errato.
    
     cin >> x[i].push(val);
    
    non puoi fare questa operazione devi prima inserire il valore nella variabile val e poi chiami la funzione
    
    int main() {
       int val,n;
       Lista x;
       cout << "Quanti elementi vuoi inserire? " << endl;
       cin >> n;
       for (int i=0;i<n;i++) {
            cout << "Elemento: ";
            cin >> val;
            x.push(val);
       }
    
Devi accedere o registrarti per scrivere nel forum
5 risposte