C++ 不在函数中输入
在过去的两天里,我一直在尝试结束这个程序,主要的是当程序中有一个egirCamiorDenat时,程序本身不会通过primercami函数。你知道吗C++ 不在函数中输入,c++,function,struct,C++,Function,Struct,在过去的两天里,我一直在尝试结束这个程序,主要的是当程序中有一个egirCamiorDenat时,程序本身不会通过primercami函数。你知道吗 cami*primercami(cami*primero, int origen){ new cami; primero->n_aeropuertos=1; primero->pos_aeropuertos[0]=origen; primero->coste_acumulado=0; primero->coste_heuri
cami*primercami(cami*primero, int origen){
new cami;
primero->n_aeropuertos=1;
primero->pos_aeropuertos[0]=origen;
primero->coste_acumulado=0;
primero->coste_heuristica=0;
primero->next=NULL;
return primero;
}
cami*AfegirCamiOrdenat (cami* primerolista, cami*nuevoelemento){
cami *ant;
cami *act;
int correcto;
cout<<"Hola estoy ordenando el camino"<<endl;
if (nuevoelemento == NULL)
{
correcto = 0; //retorna falso si el nuevo elemento no se ha creado bien
}
else{ //si la lista esta vacía el nuevo elemento será el primero
if(primerolista==NULL)
{
primerolista = nuevoelemento;
primerolista->next = NULL;
}else //busca la posición donde ha de ir el elemento
{
ant = NULL;
act = primerolista;
while (act->coste_heuristica < nuevoelemento->coste_heuristica && act->next != NULL ) //parar si se llega a la posición donbde insertar o al último elemento
{
ant = act;
act = act->next;
}
if (ant == NULL && act->coste_heuristica >= nuevoelemento->coste_heuristica) //insertar como primer elemento
{
primerolista = nuevoelemento;
nuevoelemento->next=act;
}
else
{
if (act->next == NULL && act->coste_heuristica<nuevoelemento->coste_heuristica) //insertar como último elemento
{
act->next=nuevoelemento;
nuevoelemento->next = NULL;
}
else //insertar al medio de la lista
{
nuevoelemento->next = act;
ant->next=nuevoelemento;
}
}
}
correcto=1;
}
return primerolista;
}
void AEstrella(char lista[24][4], int matPrecio[25][25], int matDist[25][25], int matTiempo[25][25]){
int NumOrigen, NumDestino;
cami*primerelemento;
preguntarVuelo(lista, NumOrigen, NumDestino);
cout<<"El origen es el n "<<NumOrigen<<" y el destino el n "<<NumDestino<<endl;
primerelemento=primercami(primerelemento, NumOrigen);
cout<<"He pasado primercami"<<endl;
while(primerelemento->pos_aeropuertos[primerelemento->n_aeropuertos-1]!=NumDestino){
cami*expansio;
cami*expansio2;
int PosAct=primerelemento->pos_aeropuertos[primerelemento->n_aeropuertos-1];//Determinamos en el APT que nos encontramos
expansio=primerelemento;
expansio2=primerelemento;
expansio->next=NULL;
expansio2->next=NULL;
primerelemento=primerelemento->next;
int Dest1, Dest2;
mostrarDestinos(vectorVuelos,lista,PosAct,Dest1, Dest2);
//Expandimos para el primer destino encontrado
coste_vuelo=matPrecio[PosAct][Dest1];
heuristica=matPrecio[Dest1][NumDestino];
ActualitzarCami(expansio, Dest1, coste_vuelo, heuristica);
cout<<"Coste acumulado: "<<expansio->coste_acumulado<<" Coste heuristica: "<<expansio->coste_heuristica<<endl;
cout<<"N APTS: "<<expansio->n_aeropuertos<<" Ultimo APT: "<<expansio->pos_aeropuertos[expansio->n_aeropuertos-1]<<endl;
primerelemento=AfegirCamiOrdenat(primerelemento, expansio);
cout<<"Hemos pasado por "<<primerelemento->pos_aeropuertos[0]<<" "<<primerelemento->pos_aeropuertos[1]<<endl;
//expandimos para el segundo destino encontrado
coste_vuelo=matPrecio[PosAct][Dest2];
heuristica=matPrecio[Dest2][NumDestino];
ActualitzarCami(expansio2, Dest2, coste_vuelo, heuristica);
primerelemento=AfegirCamiOrdenat(primerelemento, expansio2);
}//while buscando destino
primerelemento=imprimirllistaCami(primerelemento);
esborrarlista(primerelemento);
}
cami*primercami(cami*primero,int-origen){
新卡米;
primero->n_aeropuertos=1;
primero->pos_aeropuertos[0]=原发性;
primero->coste_acumulado=0;
primero->coste_heuristica=0;
primero->next=NULL;
返回primero;
}
cami*AfegirCamiOrdenat(cami*primerolista、cami*Nuevolemento){
卡米*蚂蚁;
cami*法案;
国际更正;
coutnext!=NULL)//parar si se llega a la posición donbde insertar o alúltimo elemento
{
蚂蚁=行动;
act=act->next;
}
if(ant==NULL&&act->coste_heuristica>=nuevolemento->coste_heuristica)//insertar como primer elemento
{
primerolista=新元素;
新元素->下一步=行动;
}
其他的
{
if(act->next==NULL&&act->coste_heuristica coste_heuristica)//insertar comoúltimo elemento
{
act->next=新元素;
新元素->下一步=空;
}
else//insertar al-medio de la lista
{
新元素->下一步=行动;
ant->next=Nuevolemento;
}
}
}
校正=1;
}
返回primerolista;
}
void AEstrella(char lista[24][4]、int matPrecio[25][25]、int matDist[25][25]、int matTiempo[25][25]){
内努莫里根,努姆德斯蒂诺;
cami*primerelemento;
preguntarVuelo(lista、NumOrigen、NumDestino);
你有没有试过用调试器调试它,然后逐条检查代码?请仔细阅读,这里的“主要内容”是没有main
main,因为它现在唯一做的事情就是调用void AEstrella,很抱歉没有提前说出来。