SlideShare una empresa de Scribd logo
1 de 8
PROGRAMA EN C++ SOBRE
LISTA SIMPLE ENLAZADA.
#include<iostream.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<string.h>

    struct lista
    {
    int num;
    struct lista *sig;
    };
    typedef struct lista nodo;

    void   inicio();
    void   final();
    void   mostrar();
    void   del();
    void   antes();
    void   despues();

    nodo *cab=NULL;
    nodo *ult=NULL;

    int main()
{
    int opc=0;
    while(opc!=7)
    {
  clrscr();
    printf("nMENUn1.- ingresar al inicion2.- ingresar al
finaln3.- insertar antesn4.- insertar despuesn5.- imprimirn6.-
eliminarn7.- salirningrese su opcion: ");
    scanf("%d",&opc);
switch(opc)
      {
      case 1:
      inicio();
      break;
      case 2:
      final();
      break;
      case 3:
      antes();
      break;
      case 4:
      despues();
      break;
      case 5:
      mostrar();
      break;
      case 6:
      del();
      break;
      }

     }
}

     void inicio()
     {
     nodo *nuevo;
     char resp='s';
     while(resp!='n')
     {
     nuevo=((nodo*)malloc(sizeof(nodo)));
     printf("ningrese el nuevo numero: ");
     scanf("%d",&nuevo->num);
     if(cab==NULL)
     {
     cab=nuevo;
     nuevo->sig=cab;
     ult=cab;
     }
else
{
nuevo->sig=cab;
cab=nuevo;
ult->sig=cab;
}
printf("ndesea agregar otro numero? s/n: ");
fflush(stdin);
scanf("%c",&resp);
}
}

void final()
{
nodo *nuevo;
char resp='s';
while(resp!='n')
{
nuevo=((nodo*)malloc(sizeof(nodo)));
printf("ningrese el nuevo numero: ");
scanf("%d",&nuevo->num);
if(cab==NULL)
{
cab=nuevo;
nuevo->sig=cab;
ult=cab;
}
else
{
ult->sig=nuevo;
ult=nuevo;
ult->sig=cab;
}
printf("ndesea agregar otro numero? s/n: ");
fflush(stdin);
scanf("%c",&resp);
}
}
void mostrar()
  {
  nodo *ptr;
  int valido=0;
  ptr=cab;
  while(valido!=1)
  {
  if(ptr==ult)
  {
  valido=1;
  }
  printf("%d",ptr->num);
  ptr=ptr->sig;
  }
  getch();
  }

 void del()
 {
 nodo *ptr;
 nodo *pkr;
 nodo *aux=NULL;
 int num, y=0, valido=0, vali2=0, vali3=0;
 ptr=cab;
 pkr=cab;
 printf("ningrese el numero a borrar: ");
 scanf("%d",&num);
 while(valido!=1)
 {
 if(ptr==ult)
 {
 valido=1;
 }
 if(num==ptr->num)
 {
 aux=ptr;
 y=1;
 }
if((ptr==cab)&&(y==1))
{
cab=ptr->sig;
ult->sig=cab;
y=0;
}
else if((ptr==ult)&&(y==1))
{
while(vali2!=1)
{
if(pkr==ult)
{
vali2=1;
}
if(pkr->sig==aux)
{
ult=pkr;
ult->sig=cab;
y=0;
}
pkr=pkr->sig;
}
}
else if(y==1)
{
while(vali3!=1)
{
if(pkr==ult)
{
vali3=1;
}
if(pkr->sig==aux)
{
pkr->sig=aux->sig;
y=0;
}
pkr=pkr->sig;
}
}
ptr=ptr->sig;
}
      }

      void antes()
      {
      nodo *nuevo, *ptr, *pkr, *aux;
      int num, y=0, valido=0;
      char resp='s';
      ptr=cab;
      pkr=cab;
      while(resp!='n')
      {
      nuevo=((nodo*)malloc(sizeof(nodo)));
      printf("ningrese el nuevo numero: ");
      scanf("%d",&nuevo->num);
      printf("nantes de quien quiere ingresar? INGRESE EL NUMERO:
");
      scanf("%d",&num);
      while(valido!=1)
      {
      if(ptr==ult)
      {
      valido=1;
      }
      if(num==ptr->num)
      {
      aux=ptr;
      y=1;
      }
      while(y==1)
      {
      if(pkr->sig==aux)
      {
      pkr->sig=nuevo;
      nuevo->sig=aux;
      y=0;
      }
      pkr=pkr->sig;
      }
      ptr=ptr->sig;
}
      printf("ndesea agregar otro numero? s/n: ");
      fflush(stdin);
      scanf("%c",&resp);
      }

      }

      void despues()
      {
      nodo *ptr, *nuevo;
      ptr=cab;
      char resp='s';
      int num, valido=0;
      while(resp!='n')
      {
      nuevo=((nodo*)malloc(sizeof(nodo)));
      printf("ningrese el nuevo numero: ");
      scanf("%d",&nuevo->num);
      printf("ndespues de quien quiere ingresar? INGRESE EL NUMERO:
");
      scanf("%d",&num);
      while(valido!=1)
      {
      if(ptr==ult)
      {
      valido=1;
      }
      if(num==ptr->num)
      {
      nuevo->sig=ptr->sig;
      ptr->sig=nuevo;
      }
      ptr=ptr->sig;
      }
      printf("ndesea agregar otro numero? s/n: ");
      fflush(stdin);
      scanf("%c",&resp);
      }
      }

Más contenido relacionado

La actualidad más candente

Deteccion de Ciclos en c
Deteccion de Ciclos en cDeteccion de Ciclos en c
Deteccion de Ciclos en cAbraham
 
Ejercicios de programacion en c++
Ejercicios de programacion en c++Ejercicios de programacion en c++
Ejercicios de programacion en c++Tony Pesantez
 
Factura en borland c++
Factura en borland c++Factura en borland c++
Factura en borland c++Luis Coba
 
Deber de programación
Deber de programación  Deber de programación
Deber de programación legnasilvana
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bFRESH221 C.R
 
Suma y multiplica dos numeros decimales
Suma y multiplica dos numeros decimalesSuma y multiplica dos numeros decimales
Suma y multiplica dos numeros decimaleslumarmaiella
 
Unidad2 programas while , do while y for
Unidad2 programas while , do while  y forUnidad2 programas while , do while  y for
Unidad2 programas while , do while y forMiguel Angel Peña
 
Cajero en C++
Cajero en C++Cajero en C++
Cajero en C++IngridBs
 
Trabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje cTrabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje coswnes92
 
Ejercicios resueltos de borland c++
Ejercicios resueltos de borland c++Ejercicios resueltos de borland c++
Ejercicios resueltos de borland c++JoseGCordero
 
PROBLEMAS DE PROGRAMACION 3
PROBLEMAS DE PROGRAMACION 3PROBLEMAS DE PROGRAMACION 3
PROBLEMAS DE PROGRAMACION 3Jordan Puente
 

La actualidad más candente (19)

Algoritmos en c++
Algoritmos en c++Algoritmos en c++
Algoritmos en c++
 
Andres
AndresAndres
Andres
 
Funciones Clase1
Funciones Clase1Funciones Clase1
Funciones Clase1
 
Deteccion de Ciclos en c
Deteccion de Ciclos en cDeteccion de Ciclos en c
Deteccion de Ciclos en c
 
Ejercicios de programacion en c++
Ejercicios de programacion en c++Ejercicios de programacion en c++
Ejercicios de programacion en c++
 
Practicas de programacion 11 20
Practicas de programacion 11 20Practicas de programacion 11 20
Practicas de programacion 11 20
 
Factura en borland c++
Factura en borland c++Factura en borland c++
Factura en borland c++
 
Deber de programación
Deber de programación  Deber de programación
Deber de programación
 
Include
IncludeInclude
Include
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2b
 
Suma y multiplica dos numeros decimales
Suma y multiplica dos numeros decimalesSuma y multiplica dos numeros decimales
Suma y multiplica dos numeros decimales
 
Unidad2 programas while , do while y for
Unidad2 programas while , do while  y forUnidad2 programas while , do while  y for
Unidad2 programas while , do while y for
 
Practica de programacion 21 28
Practica de programacion 21 28Practica de programacion 21 28
Practica de programacion 21 28
 
Cajero en C++
Cajero en C++Cajero en C++
Cajero en C++
 
Trabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje cTrabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje c
 
Ejercicios resueltos de borland c++
Ejercicios resueltos de borland c++Ejercicios resueltos de borland c++
Ejercicios resueltos de borland c++
 
Resultado de una raiz
Resultado de una raizResultado de una raiz
Resultado de una raiz
 
PROBLEMAS DE PROGRAMACION 3
PROBLEMAS DE PROGRAMACION 3PROBLEMAS DE PROGRAMACION 3
PROBLEMAS DE PROGRAMACION 3
 

Similar a Programa en c de listas

Similar a Programa en c de listas (20)

PROBLEMAS DE POGRAMACION 1
PROBLEMAS DE POGRAMACION 1PROBLEMAS DE POGRAMACION 1
PROBLEMAS DE POGRAMACION 1
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
 
Robin riberoprograma2
Robin riberoprograma2Robin riberoprograma2
Robin riberoprograma2
 
Andres quintal.doc
Andres quintal.docAndres quintal.doc
Andres quintal.doc
 
Ejercicios de programacionc++
Ejercicios de programacionc++Ejercicios de programacionc++
Ejercicios de programacionc++
 
algoritmos y Programacion
algoritmos y Programacionalgoritmos y Programacion
algoritmos y Programacion
 
Practicas c++
Practicas c++Practicas c++
Practicas c++
 
Practicas c++
Practicas c++Practicas c++
Practicas c++
 
Practicas segundo parcial de programacion avanzada
Practicas segundo parcial de programacion avanzadaPracticas segundo parcial de programacion avanzada
Practicas segundo parcial de programacion avanzada
 
Laboratorio1 entrada-salida de datos / Lenguance C
Laboratorio1   entrada-salida de datos / Lenguance CLaboratorio1   entrada-salida de datos / Lenguance C
Laboratorio1 entrada-salida de datos / Lenguance C
 
Ejercicios de programación.
Ejercicios de programación.Ejercicios de programación.
Ejercicios de programación.
 
Informe minishell
Informe minishellInforme minishell
Informe minishell
 
programas varios de visual
programas varios de visualprogramas varios de visual
programas varios de visual
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Carpeta programacion i2
Carpeta programacion i2Carpeta programacion i2
Carpeta programacion i2
 
Tipos de Ordenamiento en C
Tipos de Ordenamiento en CTipos de Ordenamiento en C
Tipos de Ordenamiento en C
 
JUEGO CONCENTRECE PARA ENTORNO DEV C++
JUEGO CONCENTRECE PARA ENTORNO DEV C++JUEGO CONCENTRECE PARA ENTORNO DEV C++
JUEGO CONCENTRECE PARA ENTORNO DEV C++
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 

Último

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 

Último (12)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Programa en c de listas

  • 1. PROGRAMA EN C++ SOBRE LISTA SIMPLE ENLAZADA.
  • 2. #include<iostream.h> #include<conio.h> #include<stdlib.h> #include<string.h> struct lista { int num; struct lista *sig; }; typedef struct lista nodo; void inicio(); void final(); void mostrar(); void del(); void antes(); void despues(); nodo *cab=NULL; nodo *ult=NULL; int main() { int opc=0; while(opc!=7) { clrscr(); printf("nMENUn1.- ingresar al inicion2.- ingresar al finaln3.- insertar antesn4.- insertar despuesn5.- imprimirn6.- eliminarn7.- salirningrese su opcion: "); scanf("%d",&opc);
  • 3. switch(opc) { case 1: inicio(); break; case 2: final(); break; case 3: antes(); break; case 4: despues(); break; case 5: mostrar(); break; case 6: del(); break; } } } void inicio() { nodo *nuevo; char resp='s'; while(resp!='n') { nuevo=((nodo*)malloc(sizeof(nodo))); printf("ningrese el nuevo numero: "); scanf("%d",&nuevo->num); if(cab==NULL) { cab=nuevo; nuevo->sig=cab; ult=cab; }
  • 4. else { nuevo->sig=cab; cab=nuevo; ult->sig=cab; } printf("ndesea agregar otro numero? s/n: "); fflush(stdin); scanf("%c",&resp); } } void final() { nodo *nuevo; char resp='s'; while(resp!='n') { nuevo=((nodo*)malloc(sizeof(nodo))); printf("ningrese el nuevo numero: "); scanf("%d",&nuevo->num); if(cab==NULL) { cab=nuevo; nuevo->sig=cab; ult=cab; } else { ult->sig=nuevo; ult=nuevo; ult->sig=cab; } printf("ndesea agregar otro numero? s/n: "); fflush(stdin); scanf("%c",&resp); } }
  • 5. void mostrar() { nodo *ptr; int valido=0; ptr=cab; while(valido!=1) { if(ptr==ult) { valido=1; } printf("%d",ptr->num); ptr=ptr->sig; } getch(); } void del() { nodo *ptr; nodo *pkr; nodo *aux=NULL; int num, y=0, valido=0, vali2=0, vali3=0; ptr=cab; pkr=cab; printf("ningrese el numero a borrar: "); scanf("%d",&num); while(valido!=1) { if(ptr==ult) { valido=1; } if(num==ptr->num) { aux=ptr; y=1; }
  • 7. } } void antes() { nodo *nuevo, *ptr, *pkr, *aux; int num, y=0, valido=0; char resp='s'; ptr=cab; pkr=cab; while(resp!='n') { nuevo=((nodo*)malloc(sizeof(nodo))); printf("ningrese el nuevo numero: "); scanf("%d",&nuevo->num); printf("nantes de quien quiere ingresar? INGRESE EL NUMERO: "); scanf("%d",&num); while(valido!=1) { if(ptr==ult) { valido=1; } if(num==ptr->num) { aux=ptr; y=1; } while(y==1) { if(pkr->sig==aux) { pkr->sig=nuevo; nuevo->sig=aux; y=0; } pkr=pkr->sig; } ptr=ptr->sig;
  • 8. } printf("ndesea agregar otro numero? s/n: "); fflush(stdin); scanf("%c",&resp); } } void despues() { nodo *ptr, *nuevo; ptr=cab; char resp='s'; int num, valido=0; while(resp!='n') { nuevo=((nodo*)malloc(sizeof(nodo))); printf("ningrese el nuevo numero: "); scanf("%d",&nuevo->num); printf("ndespues de quien quiere ingresar? INGRESE EL NUMERO: "); scanf("%d",&num); while(valido!=1) { if(ptr==ult) { valido=1; } if(num==ptr->num) { nuevo->sig=ptr->sig; ptr->sig=nuevo; } ptr=ptr->sig; } printf("ndesea agregar otro numero? s/n: "); fflush(stdin); scanf("%c",&resp); } }