Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con Listas c++

Estas en el tema de Problema con Listas c++ en el foro de C/C++ en Foros del Web. Hola amigos, tengo un problema con un lista en c++ en mi estructura tengo mi campo carne y nombre ambos string, pero cuando quiero eliminar ...
  #1 (permalink)  
Antiguo 30/05/2009, 21:52
Avatar de baxi2990  
Fecha de Ingreso: agosto-2008
Ubicación: Quetzaltenango - Guatemala
Mensajes: 340
Antigüedad: 15 años, 8 meses
Puntos: 2
Problema con Listas c++

Hola amigos, tengo un problema con un lista en c++ en mi estructura tengo mi campo carne y nombre ambos string, pero cuando quiero eliminar me tira este error

.\main.cpp(71) : error C2451: la expresión condicional de tipo 'std::string' no es válida

dejo el codigo haber en q estoy fallando

Código:
#include <iostream>
#include <string>

using namespace std;

struct nodolista{
	string carne, apellido, nombres, telefono;	
	int edad;
	nodolista *link;
};

int main(){
	nodolista *start=NULL;
	string nom, ape, tel, carne;
	int eda, tamano;

carne="";				
				if(!vacia(start))
				{
					cout<<"Ingrese el carne del alumno a eliminar: ";
					cin>>carne;
						if(borrar(&start,carne)
						{
							cout<<"Alumno con carne: "<<carne<<" borrado"<<endl;
							imprimir(start);
						}
						else{
							cout<<"El alumno no esta inscrito"<<endl;
							system("PAUSE");
						}
				}
				else{
					cout<<"La base de datos esta vacia"<<endl;
					system("PAUSE");
}
Ahora la funcion borrar y vacia
Código:
string borrar(nodolista **start2, string dato)
{
	nodolista *previo, *next, *temp;
	if(dato==(**start2).carne)
	{
		temp=*start2;
		*start2=(**start2).link;
		free(temp);
		return dato;
	}
	else{
		previo=*start2;
		next=(**start2).link;
		
		while(next!=NULL && (*next).carne!=dato)
		{
			previo=next;
			next=(*next).link;
		}

		if(next!=NULL)
		{
			temp=next;
			(*previo).link=(*next).link;
			free(temp);
			return dato;
		}
	}
	return '\0';
}

int vacia(nodolista *start)
{
	return start==NULL;
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:00.