Red de conocimiento informático - Aprendizaje de código fuente - Creación y recorrido secuencial de tablas de estructura de datos en lenguaje C

Creación y recorrido secuencial de tablas de estructura de datos en lenguaje C

#include?lt;stdio.hgt;

#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;

NLT?*nlist=createlist();

if(nlist)

{

for(i =0;ilt;nlist- gt ; maxlen; i )

addtolist(nlist);

pList(nlist);

}

regresar?;

}

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));

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;

}