Estructura de datos creación de lista enlazada individualmente imprimir eliminar insertar consulta informe del experimento
Compilado por 1.c
#include lt; iostreamgt;
usando el espacio de nombres std
typedef struct node
{
datos de caracteres;
nodo de estructura *siguiente;
}enlace
enlace * get(enlace *l; , int i)
{
enlace *p; int j=0;
p=l
mientras((jlt; ; i) amplificador; (p-gt; siguiente!=NULL))
{p=p-gt; siguiente;}
if(j==i )
return p;
else
return NULL
}
enlace * ins (enlace *; l, char ch, int i)
{ enlace *p, *s;
p=get(l, i-1);
if( p==NULL)
coutlt;lt;"Entrada incorrecta"lt;lt;endl;
else
{
s =(enlace *)malloc(sizeof(enlace));
s-gt;data=ch;
s-gt;next=p-gt;next;
p>
p-gt; siguiente=s;
}
retorno
}
enlace * buscar( enlace *l, char ch)
{
enlace *p; int i=0; int j=0; ;
while(p!=NULL)
{ i ;
if(p-gt; data!=ch)
p=p- gt;next;
else {coutlt;lt;"Los datos que estás buscando están en la posición "lt;lt;i-1lt;lt;"."lt;lt; endl;
j=1; p=p-gt; siguiente;
}
}
si(j!=1 )
coutlt;lt;"Los datos que buscas no están en la tabla lineal."lt;lt;endl;
return l;
}
enlace * del(enlace *l, int i)
{
enlace *p, *s
p= get(l, i-1);
if(p==NULL)
coutlt;lt;"Entrada incorrecta"lt;lt;endl;
else
{
s=p-gt; siguiente
p-gt; siguiente=s-gt; > gratis(s);
p>
}
return l;
}
enlace * agregar(enlace * l)
{
l
ink *p, *s;
coutlt; "Ingrese una cadena de datos de un solo carácter, que termine con *!"
char ch;
p>enlace *HEAD;
enlace *R, *P, *L;
HEAD=( enlace *)malloc(sizeof(enlace));
HEAD-gt; next=NULL
R=HEAD
getchar(); p>
ch=getchar();
while(ch!='*')
{
P=(enlace *)malloc( tamaño de (enlace));
P -gt; datos=ch; siguiente=NULL
R-gt; siguiente;
getchar();
ch=getchar();
}
L=HEAD; p> coutlt;lt; "La tabla lineal de entrada actual es: "lt;lt;endl;
P=L;P=P-gt;next;
if(L !=NULL)
hacer
p>{coutlt;lt;P-gt;datalt;lt;" ";
P=P-gt; siguiente;
}mientras(P!=NULL );
coutlt; endl; (p-gt; siguiente!=NULL)
p=p-gt; siguiente
s=L
p-gt; -gt; siguiente;
p=l;
devolver l;
}
enlace * imprimir(enlace *l)
{ int i, k;
char ch;
link *p, *q;
coutlt;lt;"La corriente la tabla lineal es: "lt;lt;endl;
p=l;p=p-gt;next;
if(l!=NULL)
hacer
{coutlt;lt;p-gt ;datalt;lt;" ";
p=p-gt;next;
}mientras( p!=NULL);
coutlt;lt; endl;
coutlt;lt;"Seleccione la operación que desea:";
coutlt;lt ;" 1. Insertar";
coutlt;lt ;" 2. Buscar";
coutlt;lt; " 3. Eliminar
coutlt; lt; " 4. Fusionar";
coutlt; "0, salir";
lt; ;
if (k==1) p>
{
coutlt;lt;"Ingrese el valor de datos que desea insertar:";
cingt;gt;ch;
coutlt ;lt;"Ingrese la ubicación que desea insertar:";
c
ingt; gt;
p=ins(l, ch, i
q=print(l);
else if(k==2)
{
coutlt;lt;"Ingrese el valor de datos que está buscando:";
cingt ;gt;ch;
p=find(l,ch);
q=print(l);
}
else if(k==3)
{
coutlt;lt;"Ingrese la ubicación de los datos que desea eliminar:";
cingt;gt ;i;
p=del(l,i);
q=print(l);
}
si (k==4)
{ p=add(l);
q=print(l);
}
;else if(k==0)
;
else
{coutlt;lt;"Error de entrada!"lt;lt;endl;
q=print(l);}
return l;
}
int main()
{
coutlt;lt;"Ingrese una cadena de datos de un solo carácter, que termine en *!"lt;lt;endl;
char
//enlace *head;
enlace *r, *p, *q, *l;
l=(enlace *)malloc(sizeof(enlace));
l-gt; siguiente=NULL
r=l;
ch=getchar()
// getchar();
while(ch!='*')
{
p=(enlace *)malloc(sizeof(enlace));
p-gt; datos=ch; p-gt; siguiente=NULL;
r-gt; =getchar();
// getchar();
}
//l=cabeza
q=print( l);
p>
return 0;
}
lenguaje 2.C
#include stdio. hgt;
#include lt; malloc.hgt;
#define N 8
nodo de estructura typedef
{int data; /p>
estructura nodo *siguiente;
}nodo;
nodo * creal()
{
nodo * p, *s, *h;
int j=1, x;
p=s=h=(nodo*)malloc(tamañode(nodo)); >
h-gt; next=NULL;
printf("ingrese los datos en cr
come la lista, termina con -1 o d números\n", N);
while(x!=-1amp;amp;jlt;=N)
{ p> p>
printf("número d:", j
scanf("d", amp;
s=(nodo*)malloc); (tamaño de (nodo));
s-gt; datos=x
if(h-gt; next==NULL)
h-gt; ; siguiente = s;
más
p-gt; siguiente = s;
p=s
j ; p>
}
p-gt; next=NULL;
return h;
}
int acceso(nodo) *h , int i)
{
nodo *p; int j=1
p=h-gt; >
while(p!=NULL)
{
if(p-gt; data==i)
break
p =p-gt; siguiente;
j
}
if(p!=NULL)
{
printf("busca el número en la posición: d\n", j
return(p-gt; data
}); p>
else
{
printf("¡No puedo encontrar el número en la lista!\n");
return -1;
}
}
void insertsl(nodo *h, int i)
{
nodo *p, *t ;
int j=1;
p=h-gt; siguiente ;; =NULL)
{
p=p-gt;
j; t=(nodo*) malloc(tamaño de(nodo));
t-gt; datos=i;
t-gt; p>
p -gt; next=t;
printf("insertar éxito en la posición d\n", j 1); >void deletesl(nodo * h, int i)
{
nodo *p, *s, *q
int j=1;
p =h;
while(p-gt; siguiente!=NULL)
{
q=p-gt; siguiente;
if(q-gt;data==i)
romper
;
p=p-gt; siguiente
j
}
si(p-gt; siguiente==NULL )
{
printf("No puedo encontrar el número que desea eliminar.\n");
return
}
else
{
s=p-gt; siguiente
p-gt; siguiente;
free(s);
printf("eliminar con éxito en la posición d\n", j 1); p>}
void print(nodo *h)
{
printf("\nimprime todos los datos de la lista: ") ;
nodo *s;
s=h-gt; siguiente
if(s!=NULL)
{
while(s!=NULL)
{
printf(" d ", s-gt; datos)
s=s-); gt; siguiente;
}
}
else
printf("¡la lista está vacía!d"); >
printf("\n");
}
int main()
{
nodo *p;
int main()
{
nodo *p
p>int a
p; =createsl();
printf("\nnecesitas encontrar el número:\n");
scanf("d", & a
access(p, a);
printf("\npor favor ingrese el número que desea insertar:\n");
scanf("d",amp;a) ;
insertsl(p,a);
printf("\ningrese el número que desea eliminar:\n"); d", amp; a);
eliminal(p, a);
print(p);
devuelve 0;
}