Mi problema es que no me entero mucho de como hacer listas enlazadas por lo que queria saber si me podian ayudar con este ejercicio, que no me funciona. Gracias.
Código C++:
Ver original#include <iostream>
#include "Lista.h"
using namespace std;
Lista :: Lista (void){
p=0;
numnodos=0;
}
Lista :: Lista (int nnodos){
numnodos=nnodos;
for (int i=0; i<nnodos; i++){
l nuevo = new Nodo;
nuevo->valor = 0;
nuevo->siguiente = p;
p=nuevo;
}
}
Lista :: Lista (int nnodos, TipoBase val){
numnodos=nnodos;
for (int i=0; i<nnodos; i++){
l nuevo = new Nodo;
nuevo->valor = val;
nuevo->siguiente = p;
p=nuevo;
}
}
Lista :: ~Lista (void){
delete p;
}
int Lista :: NNodos(void){
return(numnodos);
}
bool Lista :: EstaVacia(){
if (p==0)
return (true);
else
return false;
}
Lista Lista :: EscribirLista (void){
l nuevo;
TipoBase val;
int n = NNodos();
for (int i=0; i<n; i++){
cout << "Introduce un valor: ";
cin >> val;
nuevo->valor=val;
nuevo->siguiente=p;
p=nuevo;
}
}
void Lista :: Insertar (TipoBase val, int pos){
l nuevo;
int n = NNodos();
for (int i=0; i<n; i++){
if (n==pos)
nuevo->valor=val;
nuevo->siguiente=p;
p=nuevo;
}
}
TipoBase Lista :: ObtenerValor (int pos){
l nuevo;
int n = NNodos();
for (int i=0; i<n; i++){
if (n==pos)
cout << nuevo->valor << endl;
nuevo->siguiente=p;
p=nuevo;
}
}
Código C++:
Ver original#ifndef LISTA
#define LISTA
#include <iostream>
using namespace std;
typedef double TipoBase;
class Lista{
private:
struct Nodo{
TipoBase valor;
Nodo *siguiente;
};
typedef Nodo *l;
l p;
int numnodos;
public:
Lista (void);
Lista (int nnodos);
Lista (int nnodos, TipoBase val);
~Lista (void);
int NNodos(void);
bool EstaVacia (void);
Lista EscribirLista (void);
void Insertar (TipoBase val, int pos);
void Borrar (int pos);
TipoBase ObtenerValor (int pos);
};
#endif