Quantcast
Channel: Comunidad Underground Hispana
Viewing all articles
Browse latest Browse all 11602

Salida del compilador en lista enlazada

$
0
0
He realizado la siguiente lista enlazada, y no compila ya que me muestra:

Cita:

undefined reference to 'ver'
undefined reference to 'eliminarElemento'
id return exit status
Código:

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

struct lista
{
      char caracter;
      struct lista *sig;
      } ;

typedef struct lista Lista;
typedef struct lista *ptrLista;

void ingresar (ptrLista *inicio, char letra); 
void ver (ptrLista inicio);
void eliminarElemento (ptrLista *inicio, char letra);
void eliminar (ptrLista *inicio);

int main(int argc, char *argv[])
{
    ptrLista inicio=NULL;
    int eleccion=0; char letra;
    while (eleccion!=5)
    { 
          printf("-1-Para ingresar caracter a la lista\n-2-Para ver lista\n-3-Para eliminar un caracter de la lista\n-4-PAra eliminar lista\n-5-Para salir\n");
          scanf("%d", &eleccion);
          switch (eleccion)
          {
                case 1:
                      {
                            printf("Ingrese el caracter\n");
                            scanf("%c", &letra);
                            ingresar (& inicio, letra);
                            break;
                            }
                case 2:
                      {
                            ver (inicio);
                            break;
                            }
                case 3:
                      {
                            printf("Ingrese la letra que desea eliminar\n");
                            scanf("%c", &letra);
                            eliminarElemento(&inicio, letra);
                            break;
                            }
                case 4:
                      {
                            eliminar (&inicio);
                            break;
                            }
                case 5:
                      {
                            eleccion=5;
                            break;
                            }
                            }
                            }
 
  system("PAUSE");       
  return 0;
}

void ingresar (ptrLista *inicio, char letra)
{
    ptrLista nuevo, aux;
    nuevo=(ptrLista)malloc(sizeof(Lista));
    nuevo->caracter=letra;
    nuevo->sig=NULL;
    if(*inicio==NULL)
    {
                      *inicio=nuevo;
                      return;
                      }
    else
    {  aux=*inicio;
        while (aux!=NULL)
        {
              if(nuevo->caracter<aux->caracter)
              {
                                                nuevo->sig=aux;
                                                aux=nuevo;
                                                }
                                                aux=aux->sig;
                                                }
                    return;                             
                                                }
         
  void ver (ptrLista inicio)
  {
      if(!inicio)       
          {printf("Lista vacia\n\n");
          return;}
      else
      {
            printf("%c ", inicio->caracter);
            if(inicio->sig!=NULL)
            {
                                  ver (inicio->sig);
                                  } } }
                                 
void eliminarElemento (ptrLista *inicio, char letra)
{
    ptrLista aux;
    if(*inicio==NULL)
    {
                      printf("No hay elementos en la lista\n");
                      return;
                      }
    else
      {
          if((*inicio)->caracter== letra)
          {
                                if((*inicio)->sig==NULL)
                                {
                                                        free (*inicio);
                                                        return;
                                                        }
                                else
                                {
                                      aux=*inicio;
                                      *inicio=(*inicio)->sig;
                                      free (aux);
                                      return;
                                      }
                                      }
            else
            {
                if ((*inicio)->sig!=NULL)
                {
                                        eliminarElemento(&(*inicio)->sig, letra);
                                        }
                else
                {
                      printf("No se encuentra el caracter en la lista\n");
                      return;
                      }
                      }
                      } }
                      }           

void eliminar (ptrLista *inicio)
{
    ptrLista aux; 
    aux=*inicio;
    while (aux!=NULL) 
    {
           
          *inicio=aux->sig;
          free (aux);
          aux=*inicio;
          }
          return; }

Les agradezco su ayuda. Saludos.

Viewing all articles
Browse latest Browse all 11602

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>