Estoy estudiando por mi cuenta como hacer listas en c++ con estructuras, y queria pedir a ver si alguien le puede echar un ojo a ver si esta bien hecho, sobretodo si libero bien la memoria de cada nodo creado en la lista.
Pd: Gracias de antemano!
#include <iostream>
using namespace std;
struct nodo {
int dato;
nodo *sig;
};
void insertar(nodo* &cab, int dato) {
if (cab == 0) {
cab = new nodo;
cab->dato = dato;
cab->sig = 0;
}
else {
nodo *lista = cab;
nodo *nuevoNodo = new nodo;
nuevoNodo->dato = dato;
nuevoNodo->sig = 0;
while (lista->sig != 0) {
lista = lista->sig;
}
lista->sig = nuevoNodo;
}
}
void mostrarNodos(nodo *cab) {
nodo *lista = cab;
while(lista != 0) {
cout << lista->dato << endl;
lista = lista->sig;
}
}
void borrarNodos(nodo *cab) {
nodo *lista = cab, *aux;
while (lista->sig != 0) {
aux = lista->sig;
lista = aux;
delete aux;
}
}
int main() {
nodo *cab = 0;
insertar(cab, 3);
insertar(cab, 4);
insertar(cab, 7);
insertar(cab, 12);
mostrarNodos(cab);
borrarNodos(cab);
return 0;
}