Ciao a tutti io devo creare una lista in C++ attraverso due classi differenti una classe nodo ed una classe lista. Nell prima inserire il dato ovvero l'informazione del nodo e il puntatore al successivo nonchè le funzioni di get e sei dei due dati. Nella seconda classe è invece presente solamente il puntatore di testa della nostra lista e le varie funzioni di inserimento, rimozione, conteggio dei nodi e ricerca di un elemento. Sono riuscito a insrire in testa ma non riesco ad effettuare l'inserimento il coda.
Questo è il mio header file:
#include <iostream>
using namespace std;
class Nodo
{
private:
double dato;
Nodo* ptr_succ;
public:
Nodo();
~Nodo();
Nodo(double d, Nodo* p);
double get_dato();
void set_dato(double d);
Nodo* get_ptr();
void set_ptr(Nodo* p);
};
class Lista : public Nodo
{
private:
Nodo* puntatore;
public:
Lista();
~Lista();
Lista(Nodo* p);
void set_puntatore(Nodo* p);
Nodo* get_puntatore();
void inserire_testa(double d);
void inserire_coda(double d);
void cerca(double d);
void conta();
};
Questa è la funzione che avevo pensato:
void Lista :: inserire_coda(double d)
{
Nodo* indice;
for(indice=puntatore; indice=NULL; indice=indice->get_ptr())
{
if(indice->get_ptr()==NULL)
{
Nodo* nuovo_ptr;
nuovo_ptr=new Nodo;
nuovo_ptr->set_dato(d);
nuovo_ptr->set_ptr(NULL);
indice=nuovo_ptr;
}
}
}
Non ho errori di compilazione ma non mi viene inserito il nodo all'interno dellla lista. Sapete aiutarmi a trovare dove sbaglio e a fornirmi una soluzione? Grazie in anticipo