Usando una lista enlazada individualmente como estructura de almacenamiento para implementar el algoritmo de clasificación por inserción directa, ¿me puede dar un programa?
El siguiente programa es una colección de varias operaciones que utilizan una lista enlazada individualmente como estructura de almacenamiento, incluidas operaciones de inserción, eliminación, acceso y otras. Puede echarles un vistazo a todas. puntos clave. Espero que pueda ayudarte
#define true 1
#define false 0
#includelt;stdio.hgt;
#includelt;malloc. hgt;
nodo de estructura typedef
{
int data;
nodo de estructura *siguiente ;
} nodo;
nodo *initiatesl(nodo *h) /*Inicializar lista enlazada*/
{
h-gt; siguiente=NULL;
return(h
}
int pread()
{
int x;
scanf_s("d",&x);
return(x);
}
void createl(nodo *h) /*Crear lista única enlazada*/
{
nodo *p, *s
int <; /p>
p=h
x=pread();
mientras(x!=-1)
{
s=(node*)malloc(sizeof( node));
if(!s) /*Determine si S es válido, si no, finalice*/
{
printf("¡¡Memoria agotada!!!");
return
}
s-gt;
p-gt; siguiente =s;
p=s;
x=pread(); p>
p-gt; next=NULL /*Establecer el nodo de cola*/
}
int access(node *h, int i) /* Algoritmo de acceso*/
{ p>
int j;
nodo *p
p=h
j=0;
while( p-gt; next!=NULLamp; amp; jlt; i) /*Buscar nodo I*/
{
p=p-gt; siguiente;
j;
}
if(p!=NULLamp;amp;j==i) /*Juez si soy válido*/
return( p-gt; data
else
return(NULL);
void enter(nodo *h, int i, int x) /*algoritmo de inserción*/
{
nodo *p, *t;
int j;
p=h;j=0;
w
hile(p!=NULLamp;amp;jlt;i-1) /*Buscar nodo I*/
{
p=p-gt;next;
j;
}
if(j!=i-1) /*Juzga si i es válido*/
{
printf("¡¡¡yo no tiene valor!!!\n");
return
}
t=(nodo*)malloc(sizeof( nodo )); /*Clave para insertar*/
t-gt; data=x;
t-gt; siguiente=p-gt; p > p-gt; next=t;
}
void deletesl(node *h, int i) /*Algoritmo de eliminación*/
{
nodo *p, *s;
p=h;
int j
j=0; >
while(p-gt; next!=NULLamp; amp; jlt; i-1) /*Buscar nodo I*/
{
p=p-gt ; next ;
j ;
}
if(j!=i-1||p-gt; next==NULL) /*Juzga si i es válido */
{
printf("¡¡¡yo no tiene valor!!!\n");
return
} p>
s=p-gt; next /*Registra la posición del nodo i*/
p-gt; next=s-gt; p>}
void print(nodo *h) /*Imprimir lista enlazada de salida*/ (Nota: printf no se puede usar en el nombre de la función aquí, porque printf es una palabra clave y no se puede usar como un nombre de función)
{
nodo *q;
q=h-gt;
if(h!= NULL)
{
if(h-gt; next!=NULL)
{
printf(" h-gt; ( , --)-gt; ") ;
hacer {
printf("(d, --)-gt;", q-gt; datos); p>
q=q-gt ; siguiente
} while(q-gt; siguiente!=NULL
printf("(d,^)\n); \n", q-gt; datos) ;
}
else
printf("h-gt; ( , ^)\n");
} p>
}
void main()
{
nodo *h;
int i, m, n;
h=(nodo*)malloc(tamañode(nodo));
if(!h)
{
pr
intf("¡¡Memoria agotada!!!\n");
}
h=iniciatesl(h);
creasl(h); >
imprimir(h);
i=5; m=23; n=7;
ingresar(h, i, m); > imprimir(h);
eliminal(h, n);
imprimir(h);