Listas Simplemente Enlazadas
struct moldenodo{
         int clave;
         struct moldenodo *proximo;
};

typedef struct moldenodo nodo;
typedef nodo *pnodo;

pnodo lista = null;
struct moldenodo{
                  int clave;
clave    };
                  struct moldenodo *proximo;




        proximo
pnodo CreaNodo(int dato){

         pnodo pn = NULL;
         pn = (pnodo) malloc(sizeof(nodo));
         if ( pn != NULL) {
                     pn->clave=dato;
                     pn->proximo=NULL;
         }
         return(pn);
}
pnodo CreaNodo(int dato){

PN            pnodo pn = NULL;
              pn = (pnodo) malloc(sizeof(nodo));
              if ( pn != NULL) {
                          pn->clave=dato;
                          pn->proximo=NULL;
              }
              return(pn);
     }
pnodo CreaNodo(int dato){
PN                    pnodo pn = NULL;
                      pn = (pnodo) malloc(sizeof(nodo));
                      if ( pn != NULL) {
                                  pn->clave=dato;
     clave            }
                                  pn->proximo=NULL;

                      return(pn);
             }
pnodo CreaNodo(int dato){
PN                   pnodo pn = NULL;
                     pn = (pnodo) malloc(sizeof(nodo));
                     if ( pn != NULL) {
                                 pn->clave=dato;
     dato            }
                                 pn->proximo=NULL;

                     return(pn);
            }
pnodo InsertarAlInicio(pnodo n)
lista          {
                        if(lista==NULL)
                                    lista=n;
                        else if (n != NULL) {
                                    n->proximo=lista;
        dato            }
                                    lista = n;

                         return (n);
               }
pnodo InsertarAlInicio(pnodo n)
n       lista       {
                             if(lista==NULL)
                                         lista=n;
                             else if (n != NULL) {
                                         n->proximo=lista;
dato2       dato1            }
                                         lista = n;

                              return (n);
                    }
pnodo InsertarAlInicio(pnodo n)
lista   n           {
                             if(lista==NULL)
                                         lista=n;
                             else if (n != NULL) {
                                         n->proximo=lista;
    dato2   dato1            }
                                         lista = n;

                              return (n);
                    }
pnodo Insertar(pnodo n)
               {
                 pnodo aux = lista;
                 if(lista==NULL){
lista    aux      printf("Lista Vacia, debe ingresar al incio");
                  InsertarAlInicio(n);
                  return n;
                 } else{
                    while(aux->proximo != NULL){
        dato              aux = aux->proximo;
                    }
                    aux->proximo = n;
                    n->proximo = NULL;
                 }
                 return n;
               }
pnodo Insertar(pnodo n)
              {
                pnodo aux = lista;
                if(lista==NULL){
lista   aux      printf("Lista Vacia, debe ingresar al incio");
                 InsertarAlInicio(n);
                 return n;
                } else{
                   while(aux->proximo != NULL){
                         aux = aux->proximo;
                   }
                   aux->proximo = n;
                   n->proximo = NULL;
                }
                return n;
              }
pnodo Insertar(pnodo n)
               {
                 pnodo aux = lista;
                 if(lista==NULL){
lista    aux      printf("Lista Vacia, debe ingresar al incio");
                  InsertarAlInicio(n);
                  return n;
                 } else{
                    while(aux->proximo != NULL){
        dato              aux = aux->proximo;
                    }
                    aux->proximo = n;
                    n->proximo = NULL;
                 }
                 return n;
               }
pnodo Insertar(pnodo n)
                            {
                              pnodo aux = lista;
                              if(lista==NULL){
                               printf("Lista Vacia, debe ingresar al incio");
lista aux                      InsertarAlInicio(n);
                               return n;
                              } else{
                                 while(aux->proximo != NULL){
                                       aux = aux->proximo;
Dato1       Dato2   Dato3        }
                                 aux->proximo = n;
                                 n->proximo = NULL;
                              }
                              return n;
                            }
pnodo Insertar(pnodo n)
                        {
                          pnodo aux = lista;
                          if(lista==NULL){
                           printf("Lista Vacia, debe ingresar al incio");
lista   aux                InsertarAlInicio(n);
                           return n;
                          } else{
                             while(aux->proximo != NULL){
                                   aux = aux->proximo;
Dato1   Dato2   Dato3        }
                             aux->proximo = n;
                             n->proximo = NULL;
                          }
                          return n;
                        }
pnodo Insertar(pnodo n)
                        {
                          pnodo aux = lista;
                          if(lista==NULL){
                           printf("Lista Vacia, debe ingresar al incio");
lista           aux        InsertarAlInicio(n);
                           return n;
                          } else{
                             while(aux->proximo != NULL){
                                   aux = aux->proximo;
Dato1   Dato2   Dato3        }
                             aux->proximo = n;
                             n->proximo = NULL;
                          }
                          return n;
                        }
pnodo Insertar(pnodo n)
                                     {
                                       pnodo aux = lista;
                                       if(lista==NULL){
                                        printf("Lista Vacia, debe ingresar al incio");
lista           aux                     InsertarAlInicio(n);
                                        return n;
                                       } else{
                                          while(aux->proximo != NULL){
                                                aux = aux->proximo;
Dato1   Dato2    Dato3       Dato4        }
                                          aux->proximo = n;
                                          n->proximo = NULL;
                                       }
                                       return n;
                                     }
                         n
p
                                    void Descartar(pnodo p){
                                             pnodo t=lista;
        Dato1                                if(lista==p) {
                                                    lista=p->proximo;
                                                    free(p);
lista t                                      } else {
                                                   while(t!= NULL)
                                                       if (t->proximo==p) {
                                                           t->proximo=p->proximo;
                                                          free(p);
Dato1       Dato2   Dato3   Dato4                       }
                                                        else
                                                            t=t->proximo;
                                             }
                                    }
p
                                        void Descartar(pnodo p){
                                                 pnodo t=lista;
        Dato1                                    if(lista==p) {
                                                        lista=p->proximo;
                                                        free(p);
t       p           lista                        } else {
                                                       while(t!= NULL)
                                                           if (t->proximo==p) {
                                                               t->proximo=p->proximo;
                                                              free(p);
Dato1       Dato2       Dato3   Dato4                       }
                                                            else
                                                                t=t->proximo;
                                                 }
                                        }
p
                            void Descartar(pnodo p){
                                     pnodo t=lista;
        Dato1                        if(lista==p) {
                                            lista=p->proximo;
                                            free(p);
    lista                            } else {
                                           while(t!= NULL)
                                               if (t->proximo==p) {
                                                   t->proximo=p->proximo;
                                                  free(p);
Dato2       Dato3   Dato4                       }
                                                else
                                                    t=t->proximo;
                                     }
                            }
p
                                    void Descartar(pnodo p){
                                             pnodo t=lista;
        Dato3                                if(lista==p) {
                                                    lista=p->proximo;
                                                    free(p);
t       lista                                } else {
                                                   while(t!= NULL)
                     p                                 if (t->proximo==p) {
                                                           t->proximo=p->proximo;
                                                          free(p);
Dato1       Dato2   Dato3   Dato4                       }
                                                        else
                                                            t=t->proximo;
                                             }
                                    }
p
                                    void Descartar(pnodo p){
                                             pnodo t=lista;
         Dato3                               if(lista==p) {
                                                    lista=p->proximo;
                                                    free(p);
 lista      t                                } else {
                     p                             while(t!= NULL)
                                                       if (t->proximo==p) {
                                                           t->proximo=p->proximo;
                                                          free(p);
Dato1       Dato2   Dato3   Dato4                       }
                                                        else
                                                            t=t->proximo;
                                             }
                                    }
p
                                    void Descartar(pnodo p){
                                             pnodo t=lista;
         Dato3                               if(lista==p) {
                                                    lista=p->proximo;
                                                    free(p);
 lista      t        p
                                             } else {
                                                   while(t!= NULL)
                                                       if (t->proximo==p) {
                                                           t->proximo=p->proximo;
                                                          free(p);
Dato1       Dato2   Dato3   Dato4                       }
                                                        else
                                                            t=t->proximo;
                                             }
                                    }
p
                                        void Descartar(pnodo p){
                                                 pnodo t=lista;
         Dato3                                   if(lista==p) {
                                                        lista=p->proximo;
                                                        free(p);
 lista                      t                    } else {
                     p                                 while(t!= NULL)
                                                           if (t->proximo==p) {
                                                               t->proximo=p->proximo;
                                                              free(p);
Dato1       Dato2   Dato3       Dato4                       }
                                                            else
                                                                t=t->proximo;
                                                 }
                                        }
p
                             void Descartar(pnodo p){
                                      pnodo t=lista;
         Dato3                        if(lista==p) {
                                             lista=p->proximo;
                                             free(p);
 lista               t                } else {
                                            while(t!= NULL)
                                                if (t->proximo==p) {
                                                    t->proximo=p->proximo;
                                                   free(p);
Dato1        Dato2   Dato4                       }
                                                 else
                                                     t=t->proximo;
                                      }
                             }
Hacer Código de Buscar y
        ejemplo

Listas simplemente enlazadas

  • 1.
  • 2.
    struct moldenodo{ int clave; struct moldenodo *proximo; }; typedef struct moldenodo nodo; typedef nodo *pnodo; pnodo lista = null;
  • 3.
    struct moldenodo{ int clave; clave }; struct moldenodo *proximo; proximo
  • 4.
    pnodo CreaNodo(int dato){ pnodo pn = NULL; pn = (pnodo) malloc(sizeof(nodo)); if ( pn != NULL) { pn->clave=dato; pn->proximo=NULL; } return(pn); }
  • 5.
    pnodo CreaNodo(int dato){ PN pnodo pn = NULL; pn = (pnodo) malloc(sizeof(nodo)); if ( pn != NULL) { pn->clave=dato; pn->proximo=NULL; } return(pn); }
  • 6.
    pnodo CreaNodo(int dato){ PN pnodo pn = NULL; pn = (pnodo) malloc(sizeof(nodo)); if ( pn != NULL) { pn->clave=dato; clave } pn->proximo=NULL; return(pn); }
  • 7.
    pnodo CreaNodo(int dato){ PN pnodo pn = NULL; pn = (pnodo) malloc(sizeof(nodo)); if ( pn != NULL) { pn->clave=dato; dato } pn->proximo=NULL; return(pn); }
  • 8.
    pnodo InsertarAlInicio(pnodo n) lista { if(lista==NULL) lista=n; else if (n != NULL) { n->proximo=lista; dato } lista = n; return (n); }
  • 9.
    pnodo InsertarAlInicio(pnodo n) n lista { if(lista==NULL) lista=n; else if (n != NULL) { n->proximo=lista; dato2 dato1 } lista = n; return (n); }
  • 10.
    pnodo InsertarAlInicio(pnodo n) lista n { if(lista==NULL) lista=n; else if (n != NULL) { n->proximo=lista; dato2 dato1 } lista = n; return (n); }
  • 11.
    pnodo Insertar(pnodo n) { pnodo aux = lista; if(lista==NULL){ lista aux printf("Lista Vacia, debe ingresar al incio"); InsertarAlInicio(n); return n; } else{ while(aux->proximo != NULL){ dato aux = aux->proximo; } aux->proximo = n; n->proximo = NULL; } return n; }
  • 12.
    pnodo Insertar(pnodo n) { pnodo aux = lista; if(lista==NULL){ lista aux printf("Lista Vacia, debe ingresar al incio"); InsertarAlInicio(n); return n; } else{ while(aux->proximo != NULL){ aux = aux->proximo; } aux->proximo = n; n->proximo = NULL; } return n; }
  • 13.
    pnodo Insertar(pnodo n) { pnodo aux = lista; if(lista==NULL){ lista aux printf("Lista Vacia, debe ingresar al incio"); InsertarAlInicio(n); return n; } else{ while(aux->proximo != NULL){ dato aux = aux->proximo; } aux->proximo = n; n->proximo = NULL; } return n; }
  • 14.
    pnodo Insertar(pnodo n) { pnodo aux = lista; if(lista==NULL){ printf("Lista Vacia, debe ingresar al incio"); lista aux InsertarAlInicio(n); return n; } else{ while(aux->proximo != NULL){ aux = aux->proximo; Dato1 Dato2 Dato3 } aux->proximo = n; n->proximo = NULL; } return n; }
  • 15.
    pnodo Insertar(pnodo n) { pnodo aux = lista; if(lista==NULL){ printf("Lista Vacia, debe ingresar al incio"); lista aux InsertarAlInicio(n); return n; } else{ while(aux->proximo != NULL){ aux = aux->proximo; Dato1 Dato2 Dato3 } aux->proximo = n; n->proximo = NULL; } return n; }
  • 16.
    pnodo Insertar(pnodo n) { pnodo aux = lista; if(lista==NULL){ printf("Lista Vacia, debe ingresar al incio"); lista aux InsertarAlInicio(n); return n; } else{ while(aux->proximo != NULL){ aux = aux->proximo; Dato1 Dato2 Dato3 } aux->proximo = n; n->proximo = NULL; } return n; }
  • 17.
    pnodo Insertar(pnodo n) { pnodo aux = lista; if(lista==NULL){ printf("Lista Vacia, debe ingresar al incio"); lista aux InsertarAlInicio(n); return n; } else{ while(aux->proximo != NULL){ aux = aux->proximo; Dato1 Dato2 Dato3 Dato4 } aux->proximo = n; n->proximo = NULL; } return n; } n
  • 18.
    p void Descartar(pnodo p){ pnodo t=lista; Dato1 if(lista==p) { lista=p->proximo; free(p); lista t } else { while(t!= NULL) if (t->proximo==p) { t->proximo=p->proximo; free(p); Dato1 Dato2 Dato3 Dato4 } else t=t->proximo; } }
  • 19.
    p void Descartar(pnodo p){ pnodo t=lista; Dato1 if(lista==p) { lista=p->proximo; free(p); t p lista } else { while(t!= NULL) if (t->proximo==p) { t->proximo=p->proximo; free(p); Dato1 Dato2 Dato3 Dato4 } else t=t->proximo; } }
  • 20.
    p void Descartar(pnodo p){ pnodo t=lista; Dato1 if(lista==p) { lista=p->proximo; free(p); lista } else { while(t!= NULL) if (t->proximo==p) { t->proximo=p->proximo; free(p); Dato2 Dato3 Dato4 } else t=t->proximo; } }
  • 21.
    p void Descartar(pnodo p){ pnodo t=lista; Dato3 if(lista==p) { lista=p->proximo; free(p); t lista } else { while(t!= NULL) p if (t->proximo==p) { t->proximo=p->proximo; free(p); Dato1 Dato2 Dato3 Dato4 } else t=t->proximo; } }
  • 22.
    p void Descartar(pnodo p){ pnodo t=lista; Dato3 if(lista==p) { lista=p->proximo; free(p); lista t } else { p while(t!= NULL) if (t->proximo==p) { t->proximo=p->proximo; free(p); Dato1 Dato2 Dato3 Dato4 } else t=t->proximo; } }
  • 23.
    p void Descartar(pnodo p){ pnodo t=lista; Dato3 if(lista==p) { lista=p->proximo; free(p); lista t p } else { while(t!= NULL) if (t->proximo==p) { t->proximo=p->proximo; free(p); Dato1 Dato2 Dato3 Dato4 } else t=t->proximo; } }
  • 24.
    p void Descartar(pnodo p){ pnodo t=lista; Dato3 if(lista==p) { lista=p->proximo; free(p); lista t } else { p while(t!= NULL) if (t->proximo==p) { t->proximo=p->proximo; free(p); Dato1 Dato2 Dato3 Dato4 } else t=t->proximo; } }
  • 25.
    p void Descartar(pnodo p){ pnodo t=lista; Dato3 if(lista==p) { lista=p->proximo; free(p); lista t } else { while(t!= NULL) if (t->proximo==p) { t->proximo=p->proximo; free(p); Dato1 Dato2 Dato4 } else t=t->proximo; } }
  • 26.
    Hacer Código deBuscar y ejemplo