Por favor, ayúdenme a escribir dos programas, uno es para buscar y ordenar y el otro es una lista enlazada unidireccional. Lo pido desde abajo. Se entregará pasado mañana.
Escribí "Operaciones básicas de listas enlazadas unidireccionales", que es más difícil, y te dejo la "Aplicación de algoritmos de búsqueda y clasificación".
#include?
#include?
typedef?int?Type;
typedef?struct?node?{
Tipo?datos;
estructura?node?*siguiente;
}*LLIST,*pNode;
LLIST?CreateList( )?{?//?Crear una lista enlazada individualmente
LLIST?head;
pNode?p;
Type?num;
head?=?p?=?(pNode)malloc(sizeof(struct?node));
p->data?=?0;
while(scanf( "% d",&num)?==?1)?{
p->siguiente?=?(pNode)malloc(sizeof(struct?node));
p -> siguiente->datos?=?num;
p?=?p->siguiente;
}
p->siguiente?=?NULL ;
return?head;
}
void?Sort(LLIST?head)?{?//?Ordenación ascendente (ordenación por selección)
pNode?p,q,pt,qt;
for(p?=?head;?p->siguiente;?p?=?p->siguiente)?{
qt?=?p;
for(q?=?p->siguiente;?q->siguiente;?q?=?q->siguiente)?{
if(qt->siguiente->datos?>?q->siguiente->datos)
qt?=?q;
}
if (qt?=?p)?{
pt?=?p->siguiente;
p->siguiente?=?qt->siguiente;
qt->siguiente?=?p->siguiente->siguiente;
p->siguiente->siguiente?=?pt;
}
}
}
int?InsertElem(LLIST?head,Type?x,int?pos)?{
pNode?q,p;< / p>
int?i?=?1;
for(p?=?head;?p->siguiente?&&?i? siguiente,++i);
if(i?==?pos)?{
q?=?(pNode)malloc(sizeof(struct?node));
q->datos?=?x;
q->siguiente?=?p->siguiente;
p->siguiente?=?q ;
return?1;?//?Se insertó correctamente en la posición especificada
}
return?0;?//?pos no está dentro del rango de longitud de la lista enlazada
}
int?DeleteElem(LLIST?head,int?pos)?{
pNode?q,p; p>
int?i?=?
1;
for(p?=?head;?p->siguiente?&&?i?siguiente,++i);
if(i?==?pos)?{
q?=?p->siguiente;
p->siguiente?=?q->siguiente;
free(q);
return?1;?//Eliminar correctamente el elemento especificado
}
return?0;? / /?El elemento especificado no se encontró y la operación de eliminación falló.
}
void?ShowList(LLIST?head)?{
pNode?p?=?head->siguiente;
while(p)?{
printf("%d?",p->datos);
p?=?p->siguiente;
}
printf("\n");
}
int?main()?{
LLIST?head?= ?CreateList();
ShowList(head);
InsertElem(head,15,5);
ShowList(head);
DeleteElem(head,7);
ShowList(head);
return?0;
}