Menú

Mostrar Mensajes

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ú

Mensajes - ronyop

#1
Programación C/C++ / Re: struct en c
27 Noviembre 2015, 21:55 PM
tengo problemas  con la siguente funcion.
la funcion tiene que ordenar de forma ascendente o descendentes   y no me ardena.





void agregar_nodo(nodo_t**p,char *ruta)
{
  char*pal=(char*)malloc(strlen(ruta));
  nodo_t*nuevo;
  nodo_t*actual;
  nodo_t*anterior;
  strcpy(pal,ruta);
nuevo=(nodo_t*)malloc(sizeof(nodo_t));
  nuevo->filename=pal;
  nuevo->sig=NULL;
  if(*p==NULL)
  {
    *p=nuevo;
  }
  else
  {
    actual=*p;
   anterior=NULL;
  while((actual!=NULL)&&(ruta>actual->filename))
  {
    anterior=actual;
    actual=actual->sig;
  }
  if(anterior==NULL)
  {
    nuevo->sig=*p;
    *p=nuevo;
  }
  else
   {
       anterior->sig=nuevo;
       nuevo->sig=actual;
   }
  }
}

#2
Programación C/C++ / Re: struct en c
27 Noviembre 2015, 15:57 PM
Ok muchas gracias
#3
Programación C/C++ / Re: struct en c
27 Noviembre 2015, 12:22 PM
gracias  class_OpenGL.
yo ise de esta forma y me ando igual megustaria q lo revisen si tiene algun error.
desde ya muchas gracias.




************************************************************************************************************************

#include<stdio.h>
#include<string.h>
#include<stdlib.h>


typedef struct  Nodo{
              char *filename;
              struct Nodo*sig;
            }nodo_t;

void agregar_nodo(nodo_t **p,char* ruta)
{
  char *pal;
  nodo_t *nuevo;
  nodo_t *aux;
  pal=(char*)malloc(strlen(ruta)+1);
  strcpy(pal,ruta);
  nuevo=(nodo_t*)malloc(sizeof(nodo_t));
 
  nuevo->filename=pal;
  nuevo->sig=NULL;

  if(*p==NULL)
    *p=nuevo;
  else
  {
    aux=*p;
    while(aux->sig!=NULL)
     aux=aux->sig;
    aux->sig=nuevo;
  }
}


void mostrar_lista(nodo_t *p)
{
  while(p!=NULL)
  { printf(". %s\n",p->filename);
    p=p->sig;
  }
}

void borrar_todas_lista(nodo_t*p)
{
  nodo_t*borrar=NULL;
  while(p!=NULL)
  {
    borrar=p;
    p=p->sig;
    free(borrar);
  }
}


int main(void)
{
  nodo_t *lista=NULL;
  char *dato=(char*)malloc(1);
  int i;
 
for (i=0;i<3;i++){
   printf("ingrese el dato de la lista\n");
   scanf("%c",dato);
   while(getchar()!='\n');
    agregar_nodo(&lista, dato);
   }
  printf("\n");
   printf("muestra lista final: \n");
   mostrar_lista(lista);
  printf("\n");
  borrar_todas_lista(lista);
  printf("\n");
   printf("muestra lista borrar: \n");
   mostrar_lista(lista);
  printf("\n");
  return 0;
}
#4
Programación C/C++ / struct en c
26 Noviembre 2015, 23:06 PM
hola como están.
tengo problemas con esta etructura en agregar no. el problema es que no me almacena en en char *filename.
tampoco puedo cambiar de formato de agregar nodo.
desde ya muchas gracias.




#include<stdio.h>
#include<string.h>
#include<stdlib.h>


typedef struct  Nodo{
                                  char *filename;
              struct Nodo*sig;
}nodo_t;

void agregar_nodo(nodo_t**p,char* ruta)
{
 
  nodo_t* nuevo;
   nodo_t*aux;
  nuevo=(nodo_t*)malloc(sizeof(nodo_t));
  nuevo->filename=ruta;
  nuevo->sig=NULL;
  printf("*es:%c\n",ruta);

  printf("***es:%c\n",nuevo->filename);
  if(*p==NULL)
  {
    *p=nuevo;
  }
  else
  {
    aux=*p;
    while(aux->sig!=NULL)
    {
      aux=aux->sig;
    }
    aux->sig=nuevo;
  }
}