Ejercicio 3.6 Escribe una función para sumar dos p
La siguiente pregunta de programación involucra listas vinculadas. No entiendo la pregunta. Pídale a un experto que la resuelva. . . . .
Ejercicio 3.6 Escribe una función para sumar dos p
Ejercicio 3.6 Escribe una función para agregar 2 P
Los detalles dependen del contexto. Déjame darte el código fuente de una lista vinculada que yo escribí
/. * Nota: Su elección es C IDE */
#include "stdio.h"
#include "malloc.h"
#define note Linklist L ;
#define rtn return(0);
#define finger int(* link[5])(); link[0]=creat_list;link[1]=build_list; ; enlace [2]=check_list; enlace[3]=key_list;link[4]=add_list;link[5]=del_list;
typedef struct Node
{ int date;
p>struct Nodo * siguiente;
}Nodo, *Lista de enlaces;
Nodo *m;
int i,e;
nota;
int creat_list()
{ i=e;
L=(Lista de enlaces)malloc(tamañode(Nodo) );
p>(L)->next=NULL;
printf("Inicialización completada\n");
rtn;}
int build_list ()
{ char c;
Nodo *r,*s;
int flag=1;
r=L;
while(bandera)
{ printf("Ingrese un valor:\n");
scanf("%d ",&c);
p>if(c!=-1)
{ s=(Nodo *)malloc(tamañode(Nodo));
s->fecha=c;
r->siguiente=s;
r=s;}else
{ bandera=0;
r->next= NULL;
printf("Creación completada:\n");}
}
rtn;} p>
int check_list()
{ int j;
Nodo * p;
p=L;j=0;
printf("Ingrese el número de serie de datos requerido: ");
scanf("%d",&i);
while((p-> siguiente!=NULL)&&(j
{ p=p->siguiente;
j++;}
if(i==j ) m=p;
printf("El dato que se busca es: %d\n",m->fecha);
rtn;}
int key_list()
{ int key;
Nodo *p;
p=L;
printf("Por favor, introduzca el valor de los datos que desea encontrar:");
scanf("%d",&key);
>
while(p->siguiente!=NULL)
if(p->fecha!=clave)
{p=p->siguiente;
i++;}
else break;
m=p;
printf("El dato que se busca es: %d\n", i) ;
rtn;}
int order_list()
{ int chos;
i=e;
printf(" ╭═══════════════╮ \n");
printf(" ║ Programa de gestión de listas vinculadas║ \n");< / p>
printf(" ╭══════┤ ├══════╮\n");
printf(" ║ ║ Aplicación informática Clase 1 Li Yue║ ║ \ n");
printf(" ║ ╰═══════════════╯ ║\n");
printf(" ║ Descripción: Presione 0 para inicializar la lista vinculada║\n");
printf(" ║ Presione 1 para crear la lista vinculada -1 para finalizar║\n");
printf(" ║ Presione 2 para buscar el nodo por número de serie y devolver el puntero de resultado ║\n");
printf(" ║ Presione 3 para buscar el nodo por valor y devolver el puntero de resultado ║\n");
printf(" ║ Presione 4 para insertar el nodo║\n");
printf(" ║ Presione 5 para eliminar el nodo║\n" );
printf(" ║ Presione 6 para salir║\n");
printf(" ╰════════════════ ══════════ ═══╯\n");
scanf("%d",&chos);
return chos;}
int add_list(int l, int p)
{ int i,e;
Nodo *pre,*s;
int k;
printf(" Ingrese el número de serie de los datos insertados:\n");
scanf("%d",&i);
printf ("Por favor ingrese el valor de los datos insertados:\n") ;
scanf("%d",&e);
pre=L;k=0; p>
while(pre!=NULL&&k { pre=pre->siguiente; k =k+1;} if(!pre) { printf("¡Posición de inserción ilegal!\n"); return 0;} s=(Nodo *)malloc(tamañode(Nodo)); s->fecha=e; s->siguiente=pre->siguiente ; pre->next=s; printf("Operación completada exitosamente\n"); return 0;} int del_list() { Node *pre,*r; int k; printf("Ingrese el número de serie para eliminar los datos: \n" ); scanf("%d",&k); pre=L;k=0; while(pre->siguiente !=NULL&&k {pre=pre->siguiente; k=k+1;} if(!(pre- >siguiente) ) { printf("¡La posición del nodo eliminado es ilegal!\n"); return 0;} r=pre ->siguiente; pre->siguiente=pre->siguiente->siguiente; e=r->fecha; gratis(r); printf("La operación se completó exitosamente\n"); return 1;} void main() { int c, i=1, e=1; finger;c=order_list(); /* Matriz de punteros de función*/ while(c!=6) {enlace[ c](i,e); c=order_list();} }