Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/11/2010, 11:06
jorgevivojmnz
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Ejercicio de Punteros

Código C:
Ver original
  1. //Se pretende gestionar mediante punteros la cola de la fotocopiadora. Se pide utilizando funciones:
  2.  
  3.  //A) Tipo de datos adecuado.
  4.  
  5.       typedef struct cola_foto{
  6.               telemento elemnto;
  7.               struct cola_foto * sigte;
  8.       }cola_foto;
  9.       typedef struct t_cola{
  10.               cola_foto *ant;
  11.               cola_foto *post;
  12.       }t_cola;
  13.       typedef t_cola *cola;
  14.  
  15.  //B) Programar la funcion iniciarcola, la cual inicializa una variable para que describa una cola vacia.
  16.  
  17.  int vacia (cola c)
  18.  {
  19.      return(c->ant==c->post);
  20.  }
  21.  void iciniciarcola(){
  22.       cola c;
  23.       c(t_cola*)malloc(sizeof(t_cola));
  24.       if (c==NULL)
  25.          printf("Memoria insuficiente.");
  26.       c->ant = c->post = (cola_foto*)malloc(sizeof(cola_foto));
  27.              if (c->ant == NULL)
  28.                 printf("Memoria insuficiente.");
  29.              c->ant->sigte = NULL; // Ponemos a NULL el campo sigte del nodo apuntado por c->ant para indicar que es el unico, el nodo cabecera.
  30.       return c;
  31.  }
  32.  
  33.  //C) Programar la funcion alacola, la cual inserta el nombre de un individuo en la cola.
  34.  
  35.  void alacola(telemento x, coal c){
  36.       c->post->sigte=(cola_foto*)malloc(sizeof(celda));
  37.          if (c->post->sigte==NULL)
  38.             printf("Memoria insuficiente.");
  39.             c->post = c->post->sigte;
  40.             c->post ->elemento = x;
  41.             c->post ->sigte = NULL;
  42.  }
  43.  
  44.  //D) Programar la funcion suturno que extrae y muestra el nombre de la primera persona de la cola.
  45.  
  46.  void main()
  47.  
  48.  {
  49.  
  50.      struct nodo *pri=NULL, *ult=NULL;
  51.  
  52.      struct persona x;
  53.      printf("Introduzca el nombre: ");
  54.      gets(x.nombre);
  55.  
  56.      while(strcmpi(x.nombre,"fin"))
  57.  
  58.          if(pri==NULL) pri=ult; // Si es la 1º pasada pongo en pri el valor del primer nodo
  59.  
  60.          printf("Ingrese nombre: ");
  61.          gets(x.nombre);
  62.  
  63.      }
  64.  
  65.      if(colavacia(pri)==1) { printf("No se ingresaron registros"); getch(); }
  66.  
  67.      else mostrar(pri);