Advertisement
pmanriquez93

TAD Colas

May 25th, 2014
508
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.83 KB | None | 0 0
  1. /*
  2.  * File:   colas.h
  3.  * Author: Pablo
  4.  *
  5.  * Created on 25 de mayo de 2014, 01:48 AM
  6.  */
  7.  
  8. #ifndef COLAS_H
  9. #define COLAS_H
  10.  
  11. typedef int TElemento;
  12.  
  13. typedef struct nodo{
  14.     TElemento elem;
  15.     struct nodo* ptrSig;
  16. }TNodo;
  17.  
  18. typedef struct {
  19.     TNodo *primero;
  20.     TNodo *ultimo;
  21. }TCola;
  22.  
  23. void crearCola(TCola *);
  24.  
  25. void encolar(TCola *, TElemento);
  26.  
  27. void desencolar(TCola *);
  28.  
  29. TElemento primero(TCola *);
  30.  
  31. int esVacia(TCola *);
  32.  
  33. void imprimirCola(TCola *);
  34.  
  35. #endif  /* COLAS_H */
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42. #include <stdio.h>
  43. #include <stdlib.h>
  44. #include "colas.h"
  45.  
  46. void crearCola(TCola *cola){
  47.     cola->primero = NULL;
  48.     cola->ultimo = NULL;    
  49. }
  50.  
  51. void encolar(TCola *cola, TElemento elem){
  52.     TNodo *ptrNuevo;
  53.    
  54.     ptrNuevo = (TNodo *)malloc(sizeof(TNodo));
  55.     ptrNuevo->elem = elem;
  56.     ptrNuevo->ptrSig = NULL;
  57.    
  58.     if (cola->primero == NULL){
  59.         cola->primero = ptrNuevo;
  60.         cola->ultimo = ptrNuevo;
  61.     }else{
  62.         cola->ultimo->ptrSig = ptrNuevo;
  63.         cola->ultimo = ptrNuevo;    
  64.     }
  65.    
  66. }
  67.  
  68. void desencolar(TCola *cola){
  69.     if (cola->primero != NULL){
  70.         TNodo *ptrEliminar;
  71.         ptrEliminar = cola->primero;
  72.         cola->primero = cola->primero->ptrSig;
  73.         free(ptrEliminar);
  74.     }else{
  75.         printf("No se puede desencolar en una cola vacia\n");
  76.     }  
  77. }
  78.  
  79. TElemento primero(TCola *cola){
  80.     if (cola->primero != NULL){
  81.         return (cola->primero->elem);                
  82.     }else{
  83.         printf("No hay primera en una cola vacia\n");      
  84.     }
  85. }
  86.  
  87. int esVacia(TCola *cola){
  88.     return (cola->primero == NULL);    
  89. }
  90.  
  91.  
  92. void imprimirCola(TCola *cola){
  93.     TNodo *ptrRec;  
  94.     ptrRec = cola->primero;
  95.    
  96.     while (ptrRec != NULL){
  97.         printf(" %d ",ptrRec->elem);
  98.         ptrRec = ptrRec->ptrSig;
  99.     }
  100.     printf("NULL\n");
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement