#include <stdio.h>

typedef  struct estructura{
	int x;
	int y;
	struct estructura *sig;
}nodo  ;

int main(){
	nodo *raiz=NULL;
	
	nodo  n1, n2, n3; 

	n1.x = 7;
	n1.y = 7;
	
	n2.x = 8 ;
	n2.y = 8;

	n3.x= 45;
	n3.y= 32;
	
	agregar( n1, &raiz );
	agregar( n2, &raiz );
	agregar( n3, &raiz );
		
	recorrer( raiz );		
return 0; 
}


nodo *agregar( nodo nnodo, nodo * *lista ){
  nodo **dp, **tp;
  nodo *p, *pn;
	
        dp=  lista;
		
    
	if( *dp==NULL){

		*dp= ( nodo * ) malloc( sizeof( nodo  ) );
		(*dp)->x = nnodo.x;
		(*dp)->y= nnodo.y;
		(*dp)->sig=NULL;
		/*
		printf(" se agregor por primera ves  \n");
		printf("(%d,%d) \n", (*dp)->x, (*dp)->y ) ;
		*/

	}
	else
	  {
		p= *dp;
		while( p->sig )
		{
			p=p->sig;		
		}
		
		p->sig=(nodo * ) malloc( sizeof(nodo) ) ;
		p=p->sig;
		p->x= nnodo.x;
		p->y= nnodo.y;
		p->sig=NULL;
	  }	
	    return ( *tp ) ;
}

void recorrer( nodo *raiz ){
	nodo *p=raiz;
	while(  p ){
		printf("(%d,%d)\n" ,p->x , p->y ) ;
		p=p->sig;
	}
return ;
}
