nesito saber como se hacer arreglos en c++ por metodo de insercion o burbuja

karen
14 de Noviembre del 2005
nesito saber como hacer un progr,mas por medio de insercion

kaiser
14 de Noviembre del 2005
burbuja con clases, si consigues inserccion me avisas que tambien necesito

#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
struct lista
{
int dato;
lista *sgte;
};
lista *men,*aux,*aux1,*cab,*cab2;

int k;

void ingresar()
{
char opc;
int a;
do{
cout<<"nIngrese dato: ";
cin>>a;
aux=new lista;
aux->dato=a;
aux->sgte=NULL;
if (cab==NULL)
cab=aux;
else
{
//con el for nos posicionamos antes del NULL
//para poder seguir insertando al final
for(aux1=cab;aux1->sgte!=NULL;aux1=aux1->sgte);
aux1->sgte=aux;
}
aux1=aux;
cout<<"nDesea continuar S/N: ";
cin >>opc;
}while((opc=='s')||(opc=='S'));
}

void visualizar()
{
if (cab==NULL)
cout<<"Vacia";
else
{ aux1=cab;
while(aux1!=NULL)
{ cout<<aux1->dato<<"->";
aux1=aux1->sgte;
}
cout<<"NULL";
//podemos hacerlo en 2 lineas con un for
/*for(aux1=cab;aux1!=NULL;aux1=aux1->sgte)
{cout<<aux1->dato;*/
}
getch();
}

void burbuja()
{
int tmp;
for(aux=cab;aux->sgte!=NULL;aux=aux->sgte)
{
for(aux1=aux->sgte; aux1!=NULL; aux1=aux1->sgte)
{
if(aux->dato>aux1->dato)
{
tmp=aux->dato;
aux->dato=aux1->dato;
aux1->dato=tmp;
}
}
}

}
void main()
{
clrscr();
int op;

do{
clrscr();
cout<<"n 1.- ingresar lista 1";
cout<<"n 2.- ver";
cout<<"n 3.- burbuja";

cout<<"n 4.- Salirn";
cin >>op;
switch(op)
{
case 1: ingresar(); break;
case 2: visualizar(); break;
case 3: burbuja(); break;
}
}while(op!=4);
}