Red de conocimiento informático - Aprendizaje de código fuente - Preguntas de programación de estructura de datos (C): escriba un programa para eliminar un número entero en una cola de enteros

Preguntas de programación de estructura de datos (C): escriba un programa para eliminar un número entero en una cola de enteros

void Delete(NODE**head, char*name)//Debido a que es posible que sea necesario cambiar el encabezado, el puntero pasado es un parámetro formal

{

NODE *p, *a;

a=p=*head;

if(NULL==p)return // Determina si el encabezado está vacío, si es así , Salga directamente de la función, continúe si no está vacía

if(0==strcmp((p-gt; data).name, name))// Determine si el nombre al que apunta el encabezado el nodo es el mismo que el nombre, sí. Si elimina el nodo principal, el nodo principal se convierte en su siguiente nodo

{

*head=p-gt; eliminar p; /p>

} else

{

while((p-gt;next!=NULL)amp;amp;(strcmp((p-gt;data). nombre, nombre))) // Si no es el nodo de cola, o el nombre del miembro al que apunta el nodo actual no es el mismo que el nombre del miembro pasado, entonces directamente deje que P se convierta en su siguiente nodo

{

a=p; p=p-gt; siguiente;

}

if(0==strcmp((p-gt;datos ).nombre,nombre))/ /Si el nombre del miembro señalado es el mismo que el parámetro formal pasado, deje que P apunte a su siguiente nodo y libere la memoria (es decir, el nodo se elimina y la conexión del enlace la lista debe mantenerse después de la eliminación)

{

a-gt; next!=p-gt; eliminar

}

}

}