si
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
for(k=0;k<n;k++)
{ auxi=rand()%n;
auxj=rand()%n;
if(k==0)
mat1[auxi][auxj]=1;
else if(k==1)
mat1[auxi][auxj]=9;
else if(k==2)
{ mat1[auxi][auxj]=5;
mat1[auxi+1][auxj]=5;
}
else if(k==3)
{ mat1[auxi][auxj]=5;
mat1[auxi+1][auxj]=5;
mat1[auxi+2][auxj]=5;
}
}
void crear_lista(lista *l){
l->first=(nodo *)malloc(sizeof(nodo));
if (l->first == NULL){
printf("Error!\n");
}else{
l->last=(nodo *)malloc(sizeof(nodo));
if (l->last == NULL){
printf("Error!\n");
}else{
l->first->next=l->last;
l->last->prev=l->first;
l->first->prev=NULL;
l->last->next=NULL;
l->pdi=l->last;
}
}
}
void crear_lista(lista *l){
nodo* first = (nodo*) calloc( 1, sizeof(nodo) );
nodo* last = (nodo*) calloc(1, sizeof(nodo) );
if ( first == NULL || last == NULL )
{
free( first ); // evitamos lagunas de memoria, tu codigo no controla esto
free( last ); // evitamos lagunas de memoria, tu codigo no controla esto
printf( "Error!\n" );
}
else
{
first->next = last;
last->prev = first;
l->first = first;
l->last = last;
}
}
void crear_lista(lista *l, int valor){
nodo* first = (nodo*) calloc( 1, sizeof(nodo) );
if ( first == NULL )
{
printf( "Error!\n" );
}
else
{
nodo->element = valor;
l->first = first;
l->last = first;
l->pdi = first;
}
}
void insertar_detras(lista *l, int element){
// ...
}else{
temporal->element=element; //1. Asigna el elemento nuevo al temporal (nodo nuevo que hemos creado)
temporal->next=l->pdi->next; //2. La casilla "next" del nodo temporal apunta al siguiente de la lista
l->pdi->next=temporal;
temporal->next->prev=temporal;
}
}
void insertar_detras(lista *l, int element){
nodo *temporal;
temporal=(nodo *)malloc(sizeof(nodo));
if (temporal == NULL)
{
printf("Error!\n");
}else{
nodo* previo = l->pdi->prev;
nodo* siguiente = l->pdi;
temporal->element=element; //1. Asigna el elemento nuevo al temporal (nodo nuevo que hemos creado)
temporal->next=siguiente; //ERROR: no es pdi->next, es pdi, ya que vas a insertarlo detras de PDI, no delante
temporal->prev=previo; // ERROR: no has hecho esta asignacion... luego la lista ya no va a tener valores consistentes
if ( previo != NULL ) // Puede que el nuevo elemento pase a ser el primero de la lista
previo->next = temporal; // Otra asignacion no realizada... mas inconsistencias en la lista.
siguiente->prev = temporal; // Esta asignacion si la has hecho bien
}
}
temporal->next=l->pdi->next; //2. La casilla "next" del nodo temporal apunta al siguiente de la lista
l->pdi->next=temporal;
temporal->next->prev=temporal;
while(sigue==1)
{
//...
}