Está en la página 1de 18

CASO PRACTICO: ESTRUCTURAS DE DATOS ENLAZADAS (ANGEL ENMANUEL SANTOS, 10048787

República Dominicana UNIVERSIDAD


AUTÓNOMA DE SANTO DOMINGO
UASD-LAVEGA
Facultad de ciencias
Escuela de informática.

Lic. En informática. Estructura de datos.


INF5260-3.

Tema de la tarea:

“Caso práctico: estructura de datos enlazadas.”

Sustentante:
Ángel Enmanuel Santos Mateo.
Matricula: 100481787

Profesor:
Francisco Alberto Acosta Guzmán

La vega, República
Dominicana 21/03/2021

pág. 1 21/03/2021 Angel


Santos
Índice
TDA lista enlazadas: Operaciones matemáticas. .3
CPP DEV C++......................................................18
Código en Notepad++........................................18

pág. 2 21/03/2021 Angel


Santos
TDA lista
enlazadas:
Operaciones
matemáticas
#include <iostream.h>

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <ctype.h>

struct nodo

int n;

struct nodo*sgte;

};

typedef struct nodo*Tlista;

void inserta(Tlista &,int);

void elimina_inicio(Tlista &);

void elimina_fin(Tlista &);

void elimina_elemento(Tlista &,int);

void elimina_lista(Tlista &);

void media(Tlista );

void busqueda(Tlista, int);

void eliminarepetidos(Tlista &);

void unelista(Tlista &,Tlista &,Tlista &);

void mayorlista(Tlista );

void menorlista(Tlista);

void eliminapares(Tlista &);

void numerosprimos(Tlista);

void ordenaburbuja(Tlista);

pág. 3 21/03/2021 Angel


Santos
void imprimeinver(Tlista);

void imprimir(Tlista);

void imprimir(Tlista lista)

if(lista==NULL)

cout<<"la lista vacia, a favor ingrese elementos";

while(lista!=NULL)

cout<<lista->n<<endl;

lista=lista->sgte;

cout<<endl;

void imprimeinver(Tlista lista)

int x[20],k=0;

if(lista!=NULL)

cout<<"la lista vacia, a favor ingrese elementos";

while(lista!=NULL)

lista=lista->sgte;

x[k]=lista->n;

for(int i=0;i>=0;i--)

cout<<x[i];

void inserta(Tlista &lista,int k)

int i;

Tlista q;

pág. 4 21/03/2021 Angel


Santos
for(i=0;i<k;i++)

q=new(struct nodo);

cout<<"nt ELEMENTO ["<<i<<"] :";

cin>>q->n;

q->sgte=lista;

lista=q;

void elimina_inicio(Tlista &lista)

struct nodo*p;

if(lista!=NULL)

p=lista;

lista=lista->sgte;

delete(p);

void elimina_fin(Tlista &lista)

Tlista p,ant;

if(lista==NULL) return;

p=lista;

if(lista->sgte==NULL)

lista=lista->sgte;

else

while(p->sgte!=NULL)

ant=p;

p=p->sgte;

pág. 5 21/03/2021 Angel


Santos
}

ant->sgte=NULL;

delete(p);

void elimina_elemento(Tlista &lista,int valor)

Tlista p,ant;

p=lista;

while(p!=NULL)

if(p->n==valor)

if(p==lista)

lista=lista->sgte;

else

ant->sgte=p->sgte;

delete(p);

return;

ant=p;

p=p->sgte;

void elimina_lista(Tlista &lista)

Tlista p;

while(lista!=NULL)

p=lista;

lista=lista->sgte;

delete(p);

pág. 6 21/03/2021 Angel


Santos
}

void media(Tlista lista)

Tlista q;

int i=0;

int p;

q=lista;

while(q!=NULL)

i++;

q=q->sgte;

cout<<" la lista tiene "<<i<<" elementos"<<endl;

q=lista;

for(p=1; q!=NULL; p++)

if( i%2==0)

if(p==i/2)

cout<<"nt la media";

cout<<q->n<<" , ";

q=q->sgte;

cout<<q->n;

return;

else

q=q->sgte;

pág. 7 21/03/2021 Angel


Santos
else

if(p==(i+1)/2)

cout<<" la media:";

cout<<q->n;

return ;

else

{ q=q->sgte;

void busqueda(Tlista lista, int valor)

while (lista!=NULL)

if (valor ==lista->n)

cout<<"ntelemento encontrado ";

return;

lista=lista->sgte;

cout<<"ntelemento no habido ";

void eliminarepetidos(Tlista &lista)

Tlista t,r, a;

Tlista p=lista;

while(p!=NULL)

pág. 8 21/03/2021 Angel


Santos
{

t=p;

r=t->sgte;

while(r!=NULL)

if (p->n==r->n)

a=r;

t->sgte=r->sgte;

r=r->sgte;

delete(a);

else {t=r;

r=r->sgte; }

p=p->sgte;

void unelista(Tlista &lista1, Tlista &lista2, Tlista &lista3)

Tlista t;

t=lista1;

if(lista1!=NULL)

while (t->sgte!=NULL)

t=t->sgte;

t->sgte=lista2;

lista3=lista1;

else

pág. 9 21/03/2021 Angel


Santos
{

lista3=lista2;

lista1=NULL;

lista2=NULL;

void mayorlista(Tlista lista)

int mayor=0;

while(lista!=NULL)

if (lista->n>mayor)

mayor=lista->n;

lista=lista->sgte;

cout<<"nt el mayor es:"<<mayor;

void menorlista(Tlista lista)

int menor=999;

while(lista!=NULL)

if(lista->n<menor)

menor= lista->n;

lista=lista->sgte;

cout<<" el menor es:"<<menor;

pág. 10 21/03/2021
Angel Santos
void eliminapares(Tlista &lista)

Tlista q,a,p,t,m;

q=new(struct nodo);

q->n=1;

q->sgte=lista;

lista=q;

p=lista;

a=p->sgte;

while(a!=NULL)

if( a->n%2==0)

p->sgte=a->sgte;

t=a;

a=a->sgte;

delete(t);

else

p=a;

a=a->sgte;

m=lista;

lista=lista->sgte;

delete(m);

void numerosprimos(Tlista lista)

int band;

int num;

pág. 11 21/03/2021
Angel Santos
while(lista!=NULL)

num=lista->n;

band=1;

for(int i=2; i<=num/2 ;i++)

if(num%i==0)

band=-1;

if(band==1)

cout<<lista->n<<" , ";

lista=lista->sgte;

void ordenaburbuja(Tlista lista )

{ Tlista p,t;

Tlista marca=NULL;

int tmp;

if (lista==NULL) { return; }

else

while(lista->sgte!=marca)

{ p=lista;

t=p->sgte;

while(t!=marca)

if (p->n>t->n)

pág. 12 21/03/2021
Angel Santos
tmp=p->n;

p->n=t->n;

t->n=tmp;

else

p=t;

t=t->sgte; }

marca=p;

//************************** LA funcion main**************************************//

void main()

Tlista lista1,lista2,lista3,lista;

lista1=lista2=lista3=lista=NULL;

int valor;

char opc,opcion;

textbackground(BLUE);

do

clrscr();

cout<<"nta.INSERTA ELEMENTOS"<<endl;

cout<<"ntb.ELIMINAR AL INICIO"<<endl;

cout<<"ntc.ELIMINAR AL FINAL"<<endl;

cout<<"ntd.ELIMINAR ELEMENTO DADO"<<endl;

cout<<"nte.ELIMINAR TODA LA LISTA"<<endl;

cout<<"ntf.IMPRIMIR LISTA"<<endl;

cout<<"ntg.MEDIA DE LA LISTA"<<endl;

cout<<"nth.BUSQUEDA DE ELEMENTO"<<endl;

pág. 13 21/03/2021
Angel Santos
cout<<"nti.ELIMINA ELEMENTOS REPETIDOS"<<endl;

cout<<"ntj.UNE DOS LISTAS"<<endl;

cout<<"ntk.MAYOR DE LA LISTA"<<endl;

cout<<"ntl.MENOR DE LA LISTA"<<endl;

cout<<"ntm.ELIMINA NUMEROS PARES"<<endl;

cout<<"ntn.NUMEROS PRIMOS"<<endl;

cout<<"nto.ORDENA POR BURBUJA"<<endl;

cout<<"ntp.IMPRIME INVERTIDO"<<endl;

cout<<"ntx.SALIR"<<endl;

opcion=getche();

while(!strchr("abcdefghijklmnopx",opcion));

switch(opcion)

case 'a':{clrscr();

cout<<"ntINGRESE LIMITE DE LA LISTA:";

cin>>valor;

inserta(lista,valor);

break;

case 'b':{clrscr();

cout<<"ntELIMINAR AL INICIO";

elimina_inicio(lista);

break

case 'c':{clrscr();

cout<<"ntELIMINA AL FINAL";

elimina_fin(lista);

break;

case 'd':{clrscr();

cout<<endl<<"ntELIMINA ELEMENTO"<<endl;

cout<<"ntVALOR A ELIMINAR:";

pág. 14 21/03/2021
Angel Santos
cin>>valor;

elimina_elemento(lista,valor);

break;

case 'e':{clrscr();

cout<<endl<<"ntELIMINA LISTA";

elimina_lista(lista);

break;

case 'f':{clrscr();

cout<<endl<<"ntLISTADO"<<endl;

imprimir(lista);

break;

case 'g':{ clrscr();

cout<<"ntmedia de la lista "<<endl;

media(lista);

break;

case 'h':{ clrscr();

cout<<"ntingrese elemento a buscar:";

cin>>valor;

busqueda(lista,valor);

break;

case 'i':{clrscr();

cout<<"nteliminados elementos repetidos";

eliminarepetidos(lista);

break;

case 'j':{clrscr();

cout<<"ntUNIENDO LISATA";

pág. 15 21/03/2021
Angel Santos
cout<<"ntingrese el limite de las listas:";

cin>>valor;

cout<<"ntingrese valores a la lista A";

inserta(lista1,valor);

cout<<"ingresa valores a la lista B";

inserta(lista2,valor);

cout<<"ntlista ingresados son:";

cout<<"ntlista A"<<endl;

imprimir(lista1);

cout<<"ntlista B"<<endl;

imprimir(lista2);

cout<<"ntlistas unidas"<<endl;

unelista(lista1,lista2,lista3);

imprimir(lista3);

break;

case 'k':{clrscr();

cout<<"ntel mayor elemento:"<<endl;

mayorlista(lista);

break;

case 'l':{clrscr();

cout<<"ntel menor de la lista"<<endl;

menorlista(lista);

break;

case 'm':{clrscr();

cout<<"nteliminados los numeros pares"<<endl;

eliminapares(lista);

break;

case 'n':{clrscr();

pág. 16 21/03/2021
Angel Santos
cout<<"nt los numeros primos"<<endl;

numerosprimos(lista);

break;

case 'o':{clrscr();

cout<<"ntordena por burbuja"<<endl;

ordenaburbuja(lista);

cout<<"ntlista ordenada"<<endl;

imprimir(lista);

break;

case 'p':{clrscr();

cout<<"ntimprime imvertido"<<endl;

imprimeinver(lista);

break;

cout<<"ntregresa al menu [s] o [n]:";cin>>opcion;

while(opcion!='n');

cout<<endl;

cout<<"ntgracias por su atención .........";

getche();

pág. 17 21/03/2021
Angel Santos
CPP DEV C++

https://drive.google.com/file/d/1pQ5quFf3g6UxxcD-
diy6yogTl33SFUib/view?usp=sharing

Código en Notepad++

https://drive.google.com/file/d/1pOxUVU8rLAUixmToppSgScDVr
2gri6i2/view?usp=sharing

pág. 18 21/03/2021
Angel Santos

También podría gustarte