karlangadas

Deque

Oct 23rd, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. //Deque
  2. void Deque_anadirIzq(TLista *L, TElemento e){
  3.     TNodo *nodo=malloc(sizeof(TNodo));
  4.     nodo->elem=e;
  5.     nodo->sig=NULL;
  6.     if (Lista_EstaVacia(*L)){
  7.         L->inicio=nodo;
  8.         L->fin=nodo;
  9.     }
  10.     else{
  11.         nodo->sig=L->inicio;
  12.         L->inicio=nodo;
  13.     }
  14.     (L->numElem)++;
  15. }
  16. void Deque_anadirDer(TLista *L, TElemento e){
  17.     TNodo *nodo=malloc(sizeof(TNodo));
  18.     nodo->elem=e;
  19.     nodo->sig=NULL;
  20.     if (Lista_EstaVacia(*L)){
  21.         L->inicio=nodo;
  22.         L->fin=nodo;   
  23.     }
  24.     else{
  25.         L->fin->sig=nodo;
  26.         L->fin=nodo;       
  27.     }
  28.     (L->numElem)++;
  29. }
  30. void Deque_elimIzq(TLista *L){
  31.     if (!Lista_EstaVacia(*L)){
  32.         TNodo *crtNodo=L->inicio;
  33.         if (Lista_Tamanho(*L)==1){
  34.             free(crtNodo);
  35.             L->inicio=NULL;
  36.             L->fin=NULL;
  37.             (L->numElem)--;
  38.         }
  39.         else{
  40.             L->inicio=L->inicio->sig;
  41.             free(crtNodo);
  42.             (L->numElem)--;
  43.         }
  44.     }
  45. }
  46. void Deque_elimDer(TLista *L){
  47.     if (!Lista_EstaVacia(*L)){
  48.         TNodo *crtNodo=L->inicio;
  49.         if (Lista_Tamanho(*L)==1){
  50.             free(crtNodo);
  51.             L->inicio=NULL;
  52.             L->fin=NULL;
  53.             (L->numElem)--;
  54.         }
  55.         else{
  56.             while(crtNodo->sig->sig!=NULL)
  57.                 crtNodo=crtNodo->sig;
  58.             L->fin=crtNodo;
  59.             crtNodo=crtNodo->sig;
  60.             free(crtNodo);
  61.             L->fin->sig=NULL;
  62.             (L->numElem)--;
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment