Buenas profe, queria saber si lo que hice esta bien.
pnodo quitar_final(pnodo &lista){
pnodo extraido,i;
if(lista==NULL)
extraido=NULL;
else{
if(lista->sig==lista){
extraido=lista;
lista=NULL;
extraido->sig=NULL;
}else{
for(i=lista;(i->sig)->sig != lista;i=i->sig);
extraido=i->sig;
i->sig=lista;
extraido->sig=NULL;
}
}
return extraido;
}
es importante desprender el nodo extraido de la lista, ya que dependerá del problema que se utilice luego el nodo que extrae del quitar y para evitar errores es conveniente que pierda la conexión de manera completa, el resto es correcto
void agregar_orden(pnodo &lista, pnodo nuevo){
pnodo i;
if(lista==NULL){
lista=nuevo;
lista->sig=lista;
}else{
for(i=lista;i->sig!=lista;i=i->sig);
if(nuevo->dato < lista->dato){
nuevo->sig=lista;
lista=nuevo;
i->sig=lista;
}else{
for(i=lista;i->sig!=lista && (i->sig)->dato < nuevo->dato;i=i->sig);
nuevo->sig=i->sig;
i->sig=nuevo;
}
}
}
//el agregar en orden sería válido
desde ya muchas gracias
(Editado por Verónica Torres - envío original viernes, 25 de agosto de 2023, 23:59)