Red de conocimiento informático - Aprendizaje de código fuente - Estructura de datos Programación en lenguaje C Pregunta de programación, ¿cómo programar esto?

Estructura de datos Programación en lenguaje C Pregunta de programación, ¿cómo programar esto?

#includelt; stdio.hgt;

#stdlib.hgt

lista de estructuras typedef

{

int datos;

estructura Lista *siguiente;

}lista

int principal()

{

lista *L = (lista*)calloc(1, sizeof(list)); //nodo principal

L-gt; next = NULL;

int n , k, i;

scanf("dd", amp; n, amp; k

lista *s, *q = L; for (i=0; ilt; n; i) //Asignar valor inicial

{

s = (list*)calloc(1, sizeof(list));< / p>

s-gt; datos = i 1;

s-gt; siguiente = NULL

q-gt; > q = s;

}

q-gt; next = L-gt next; //Deje que el nodo de cola apunte al siguiente del nodo principal, es decir. , se crea la primera posición personal, la lista enlazada circular unidireccional

q = L-gt; // Deje que q apunte al siguiente nodo principal

while (q -gt; next != q) //Salir del bucle cuando solo quede un elemento

{

for (i=1; ilt; k-1; i)

{q = q-gt; next;} //q apunta al nodo eliminado anterior

s = q-gt; //s apunta al nodo eliminado

p>

q- gt; next = s-gt; next; //Vuelve a conectar la lista enlazada después de eliminar s

q = q-gt;next; //Deja que q apunte a la posición inicial. del siguiente ciclo

p>

//printf("d ", s-gt; data

free(s); s = NULL;

}

printf ("d\n", q-gt; datos

gratis

);

q = NULL;

gratis(L);

L = NULL;

devolver

}