Dev - C++ - Ayuda con el siguiente código

 
Vista:
sin imagen de perfil

Ayuda con el siguiente código

Publicado por Fatima (4 intervenciones) el 01/11/2021 00:28:59
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
//mcwH290890//
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);
void imprimeinver(Tlista);
void imprimir(Tlista);
//cuerpo de la funcion
void imprimir(Tlista lista)
{
if(lista==NULL)
cout<<"la lista vacia, por 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, x fa 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;
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;
}
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);
}
}
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;
}
}
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)
{
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
{
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;
}
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;
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)
{
tmp=p->n;
p->n=t->n;
t->n=tmp;
}
else
{
p=t;
t=t->sgte; }
}
marca=p;
}
}
}
//**************************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;
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:";
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";
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();
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 visita vuelva pronto.........";
getche();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder