Creación y recorrido secuencial de tablas de estructura de datos en lenguaje C
#include?lt;malloc.hgt;
typedef?struct?nlist
{
int?*np;
int?len; //número de direcciones utilizadas
int?maxlen; //número máximo de direcciones
}NLT; ;
NLT?*createlist(); //Crear tabla secuencial
int?addtolist(NLT?*nlist); //insertar elementos en tabla secuencial
void? pList(NLT?*nlist); //atravesando la tabla secuencial
int?main()
{
int?i; p >
NLT?*nlist=createlist();
if(nlist)
{
for(i =0;ilt;nlist- gt ; maxlen; i )
addtolist(nlist);
pList(nlist);
}
regresar?; p >
}
void?pList(NLT?* nlist)//Iterar e imprimir, dividir espacios, sin espacio después del último número
{
int?i;
for(i=0;ilt;nlist-gt;len-1;i)
printf("d?",nlist-gt;np[ i ]);
printf("d",nlist-gt;np[nlist-gt;len-1]);
}
NLT? * createlist()
{
NLT?*nlist=NULL;
nlist=(NLT?*)malloc(sizeof(NLT)); p >
scanf("d",amp;nlist-gt;maxlen);
nlist-gt;np=(int?*)malloc(sizeof(int)*nlist-gt;maxlen ) ;
si(! nlist-gt;np)
{
printf("¡Error en la solicitud de memoria! \n");
return?NULL
}
nlist-gt;len=0;
return?nlist;
}
int?addtolist(NLT?*nlist)
{
if(nlist-gt; lenlt; nlist-gt; maxlen)//si el espacio de almacenamiento no está lleno, guarde el elemento, guarde correctamente y devuelva 1? Fallo devuelva 0
{
scanf("d",amp;nlist-gt;np[nlist-gt;len]);
>nlist-gt;len;
return?
}
else?//Aquí puedes escribir que cuando el espacio de almacenamiento esté lleno, el espacio expandirse. Esto no se usa en esta pregunta, así que no lo escribí
return?0;
}