rendered paste body#include<stdio.h>
#include <stdlib.h> //ptr malloc
#include<assert.h> //ptr assert
#include <string.h> //ptr memcpy
struct list{
void** date;
int size;
int dim;
};
typedef struct list *Lista;
//FUNCTII
Lista L_New(int dimensiune);
int Verifpoz(Lista L,int p);
void ModifDim(int nouadim,Lista *L);
void L_Insert(Lista L,int p,void* x);
void L_Parcurgere(Lista L);
Lista L_New(int dimensiune){
Lista L;
L=(Lista)malloc(sizeof(struct list));
L->dim=dimensiune;
L->size=0;
L->date=(void**)malloc(L->dim*(sizeof(void*)));
return L;
}
int Verifpoz(Lista L,int p){
assert(L);
if ((p<0)||(p>L->size))
return 0;
return 1;
}
void ModifDim(int nouadim,Lista *L){
Lista L1;
L1=L_New(nouadim);
L1->size=(*L)->size;
memcpy(L1->date,(*L)->date,(*L)->size);
//L_Delete(L);
*L=L1;
}
//inserare inaintea pozitiei p;
void L_Insert(Lista L,int p,void* x){
int i;
if(L==NULL) return;
assert(VerifPoz(L,p));
if (L->size==L->dim)
ModifDim(2*L->dim,&L);
for (i=L->size;i>=p;i--)
L->date[i]=L->date[i-1];
L->date[p-1]=x;
L->size++;
}
void L_Parcurgere(Lista L){
int i;
for (i=1;i<=L->size;i++)
printf("%d ",*(int*)L->date[i-1] );
}
int main()
{
Lista L1;
int* elem;
L1=L_New(10);
elem=(int*)malloc(sizeof(int));
*elem=(int)12;
L_Insert(L1,1,elem);
L_Insert(L1,2,elem);
L_Insert(L1,3,elem);
L_Parcurgere(L1);
return 0;
}