All pastes #432631 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-04-10 11:13 UTC
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);
	//L1->dim=nouadim;
	//L_Delete(L);
	*L=L1;
		printf("noua dim ********* %d %d \n",(*L)->size,(*L)->dim);
	}	
	
	
//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);
	printf("noua dim efect %d \n",L->size);
	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(2);
	elem=(int*)malloc(sizeof(int));
	*elem=(int)12;
	L_Insert(L1,1,elem);
	L_Insert(L1,2,elem);
	L_Insert(L1,3,elem);
	L_Insert(L1,4,elem);
	L_Insert(L1,5,elem);
	L_Parcurgere(L1);
	return 0;
}