Hola a todos, bueno he leido el foro y me gustado bastante, este semestre estoy aprendiendo c++ y tengo que hacer una lista en c++ con punteros,la funcion de ingreso esta lista, tengo el algoritmo de eliminacion pero aun no implementado y mi problema esta en la funcion mostrar (imprimir el contenido de la lista) segun mi logica deberia recorrer el puntero y mostrar el contenido hasta que llegue al ultimo pero bueno mi logica falla a veces
- en mi DA deje una imagen con la logica de los punteros aux y recorre, pero aun no puedo dejar enlaces
- http//yuikoheartless.deviantart.com/gallery/#/d3jdlha
aqui el codigo :
#include <cstdlib>
#include <iostream>
//LISTA CIRCULAR
using namespace std;
struct listac{
int valor;
listac *sgte;
};
bool vacia(listac *inicio){
bool v=false;
if(inicio==NULL)
v=true;
return v;
}
void ingresar(listac *&inicio,listac *&ultimo){
cout<<"Ingrese un numero: ";
int numero;
listac *p;
p = new listac;
cin>>p->valor;
cout<<endl;
if(vacia(inicio)==true){
inicio=p;
ultimo=p; }
else{
inicio->sgte=p;
p->sgte=inicio;
ultimo=p;
}
}
void mostrar(listac *inicio,listac *ultimo){
listac *recorre , *aux;
recorre = inicio;
aux = recorre->sgte;
if(aux->sgte != inicio){
aux = recorre->sgte;
cout<<recorre->valor<<" ";
recorre=aux;
}
}
int main(int argc, char *argv[])
{
listac *inicio,*ultimo;
inicio=ultimo=NULL;
for(int i=1;i<=5;i++){
ingresar(inicio,ultimo);}
mostrar(inicio,ultimo);
system("PAUSE");
return EXIT_SUCCESS;
}
Desde entonces muchas gracias