Red de conocimiento informático - Espacio del host - Pida a expertos que me ayuden a escribir mi tarea de lenguaje C. Recompensa por puntuación alta

Pida a expertos que me ayuden a escribir mi tarea de lenguaje C. Recompensa por puntuación alta

El siguiente es el programa fuente en lenguaje C. La configuración de la estructura es ligeramente diferente a la del póster original, modifíquela usted mismo, es muy simple.

Descripción de la función: puede crear, insertar, eliminar listas vinculadas, escribir registros en documentos de texto e imprimir información de listas vinculadas.

Instrucciones de uso: Seleccione la operación requerida de acuerdo con las opciones del menú de operación (1-6); el operando de impresión de la función de impresión es 5. Ingrese 1 primero e ingrese el valor correspondiente de acuerdo con las indicaciones.

Tenga en cuenta que al ingresar la información del estudiante, el orden es

nombre, número, marca (separados por espacios y las puntuaciones son números enteros)

¡Se puede ejecutar la prueba! ! !

#include "stdio.h"

#include "alloc.h"

#definir tamaño LEN de (nodo)

# define NULL 0

typedef struct stu

{

char nombre[20];

int num;

int mark;

struct stu *next;

}node

/*Crear una nueva lista enlazada*/

nodo; *create_List( int n)

{

int i

nodo *cabeza, *cola,

cabeza= tail=( node *)malloc(LEN);

head-gt; num=n /*El nodo principal de la lista vinculada almacena la longitud de la lista vinculada*/

for(i=0; ilt ; n; i )

{

p=(nodo ​​*)malloc(LEN);

printf( "Ingrese un grupo de información:\n ");

scanf("sdd",p-gt;name,amp;p-gt;num,amp;p-gt;mark);

if(head= =NULL)

{

head=tail=p;

printf("¡Esta es una lista NULL! \n");

}

else

{

tail-gt; next=p;

p-gt; siguiente=NULL;

tail=p;

}

}

regresar cabeza;

}

/*Insertar nodo*/

nodo *insertar(nodo *head, int pos, nodo *q)

{

int i=1;

nodo *p, *r;

p=head-gt; nodo principal*/

r =head;

while(ilt;posamp;amp;p!=NULL)

{

r=p;

p =p-gt; siguiente;

i

}

r-gt; ;

q-gt; next=p; /*Insertar un nuevo nodo entre r y p*/

head-gt; lista después de insertar el nodo*/

printf("Ese

¡El nodo s está insertado!\n");

return head;

}

/*Eliminar nodo*/

nodo * eliminar(nodo *head, int pos)

{

int i=1

nodo *p, *r; p > p=head-gt;siguiente;

r=head;

while(ilt;posamp;amp;p!=NULL)

{

p>

if(p==NULL)

printf("¡Esta es una lista NULL!\n"); > {

r=p;

p=p-gt; siguiente

i

}

}

r-gt; next=p-gt; next; /*Eliminar nodos en otras ubicaciones*/

next-gt;

p>

free(p);

head-gt; num-=1 /*La longitud de la lista vinculada después de eliminar el nodo*/

printf("¡Este nodo está eliminado!\n");

return head;

}

/*Guardar los datos de entrada en la forma de un documento de texto*/

text_Output(node ​​​​*head)

{

FILE *fp

nodo; *p;

p=head-gt; siguiente;

if((fp=fopen("Estudiante.txt", "w "))==NULL)

{

printf( "¡No se puede abrir el archivo!\n");

devuelve 0;

}

hacer

{

fprintf(fp, "nombre: s\t\tnúmero: d\tmarca: d\n", p-gt; nombre, p-gt; num, p-gt; marca);

p=p-gt; siguiente;

}mientras(p!=NULL);

}

/*Mostrar nueva lista enlazada*/

mostrar(nodo *cabeza)

{

nodo *p;

p=head -gt; siguiente;

if(p==NULL)

{

printf("¡Esta es una lista NULL!\n");

p>

return 0

}

hacer

{

if(p-gt; next-gt; numlt ;=p-gt;num) /*Pon p-gt;n

um está ordenado en orden ascendente*/

{

int t;

p-gt; gt; núm;

p-gt; núm=p-gt; núm;

siguiente-gt;

}

printf("nombre: s\t\tnúmero: d\tmarca: d\n", p-gt; nombre, p-gt; num, p-gt; marca);

p=p-gt; next;

} while(p!=NULL);

printf("La longitud de la lista es: 2d", encabezado- gt; num); /*La longitud de la nueva lista enlazada*/

return 1;

}

/*Función principal*/

principal ()

{

int n, i, num, pos

nodo *head, *q; p> head=NULL ;

while(1)

{

printf("************LISTA DE ENLACES* ***** *****\n");

printf("1---Crear una lista de enlaces \n");

printf("2- --Insertar un nodo en la Lista de enlaces \n");

printf("3---Eliminar un nodo de la Lista de enlaces\n");

printf("4- --Envía un mensaje de texto a la lista de enlaces actuales \n");

printf("5---Imprime la lista de enlaces actuales \n");

printf("6--- Salir \n") ;

printf("****Seleccione 1--6 para Operar****\n");

scanf("d",amp ;i);

if(ilt; 1||igt; 6) continuar

cambiar(i)

{

caso 1: printf( "¡Ingrese una matriz para crear la lista!\n");

printf("Ingrese el número total de estudiantes: ");

scanf("d" ,amp;n) ;

head=create_List(n);

break;

caso 2: printf("Ingrese el nuevo nodo insertado\n") ;

q=(nodo ​​*)mal

loc(LEN);

scanf("sddd", q-gt; nombre, amp; q-gt; num, amp; q-gt; marca, amp; pos

<); p> head=insert(head, pos, q);

break;

caso 3: printf("Ingrese el nodo antiguo eliminado\n"); > scanf("d", amp; pos);

head=delete(head, pos

break

caso 4: text_Output(head); );

ruptura;

caso 5: mostrar(cabeza);

ruptura

caso 6: salida(1);

}

getch();

}

}