SlideShare une entreprise Scribd logo
1  sur  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);
      }
      }

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à Programa en c de listas

Similaire à 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
 

Dernier

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
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
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Dernier (13)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
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
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

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); } }