Ivonne - PRACTICA DE LISTAS
   
  Organizaciòn de Archivos
  Ivonne Mesa Bautista
  Contacto
  ORGANIZACION DE ARCHIVOS
  => Tema 3
  => Cuadro y cuestionario(org. de arch.)
  => resumeny cuadro
  => cuadro de medios de almacenamiento
  => ARCHIVOS ESPECIALES
  => preguntas sobre archivos
  => arboles
  => Practicas
  => Examen diagnostico(Programaciòn)
  => ***LISTAS***
  => PRACTICA DE LISTAS
  => Tema 8
  => GUIA TEMA 8
  => RESUMEN TEMA 9
  => BD "Super Sobras"
  => ***Super Sobras***
  => ***REPORTE DE NOMINA****
  => Reflexiones: hash, B, B , acceso concurrente
  Libro de visitantes
  ***FBD***
  BdAvanzadas
  Analisis de Sistemas

   CENTRO UNIVERSITARIO UAEM

ATLACOMULCO

EQUIPO:

DAVID CALIXTO MENDOZA

MARCO ANTONIO LÒPEZ PAREDES

IVONNE MESA BAUTISTA

OSMIN JOKONY MONROY URBINA

ANA GLADIS SEGUNDO SÀNCHEZ

GUADALUPE DEL PILAR SOTO BRAVO

 

MATERIA: ORGANIZACIÓN DE ARCHIVOS

 

“PRÀCTICA DE LISTAS CON OPERACIONES”

 

CARRERA: INGENIERÍA EN COMPUTACIÓN

 

GRUPO: ICO 11

CATEDRÁTICO: ING. FLOR DEL RÍO GONZÁLEZ ROMERO

 

PERIODO ESCOLAR: PRIMAVERA 2008-A

 

 

CÓDIGO

#include <iostream>

#include <cstdlib>

using namespace std;

 

class lista

{

                public:

                               struct

                               {

                                

                                               float num;

                                               int sigue;

 

                               }lista1[30],lista2[30];

                               int insertar(float nume, int *ubicacion);

                               void imprime(int ubicacion);

                               void ordenar(int ubicacion);

                               void busca(int nodos);

                               void estado(int cont);

                               int entre(float nume,int nodos,int *ubicacion);

                               int eliminar(int nodos,int *ubicacion);

                               int eliminar2(int nodos);

                               lista();

                               ~lista();

};

 

lista::lista()

{

                lista1[0].sigue=-1;

                lista1[0].num=0;

}

lista::~lista()

{

                lista1[0].sigue=-1;

                lista1[0].num=0;

}

int lista::insertar(float nume, int *ubicacion)

{

int cont;

cont=0;

while (cont<=*ubicacion)

                {

                               if (lista1[cont].sigue==-1)

                               {

                                               (*ubicacion)++;

                                               lista1[cont].sigue=*ubicacion;

                                               lista1[*ubicacion].sigue=-1;

                                               lista1[*ubicacion].num=nume;

                                               cout<<"Se insterto el dato al final"<<endl;

                                               system("pause");

                                               return 1;

                               }

                               cont=lista1[cont].sigue;

                }

                cout<<"No se encotro el nodo final"<<endl;

                system ("pause");

                return 0;

}

 

void lista::imprime(int ubicacion)

{

                system ("cls");

                cout<<" LA LISTA ES:"<<endl;

                cout<<"No nodott"<<"posiciont"<<"contienet"<<"EL nodo que sigue es"<<endl;

 

                for (int i=0;i<=ubicacion;i++)

                {

                               cout<<i<<"tt"<<i<<"tt"<<lista1[i].num<<"tt"<<lista1[i].sigue<<"tt"<<endl<<endl;

                }

 

                for (int j=0;j<=ubicacion;j++)

                {

                               cout<<"["<<lista1[j].num<<"]"<<"---->";

               

               

                }

                               cout<<"["<<lista1[j-1].sigue<<"]"<<endl;

 

                               cout<<"tiene un total de nodos de "<<ubicacion<<endl;

                system ("pause");

}

 

 

void lista::ordenar(int ubicacion)

{

                system ("cls");

                cout<<"ORDENANDO LIsTA"<<endl;

 

 

                 int ord,ord2;

                 char des;

                 cout<<"Orden asendente -a- orden desendente -d-"<<endl;

                 cin>>des;

if(des=='a'){

                for (int i=1;i<ubicacion;i++)

                {

                               for (int j=i+1;j<ubicacion+1;j++)// de mayor a menor

 

 

                               {                              if(lista1[j].num<lista1[i].num){                    

                                               ord=lista1[i].num;

                                               lista1[i].num=lista1[j].num;

                                               lista1[j].num=ord;}

                }

               

                }cout<<"["<<"-1"<<"]"<<"---->";

                for (int j=1;j<ubicacion+1;j++)

                {

                               cout<<"["<<lista1[j].num<<"]"<<"---->";

               

               

                }

                cout<<"["<<"-1"<<"]"<<endl;}

 

 

if(des=='d'){for (int ii=1;ii<ubicacion;ii++)

                {

                               for (int jj=ii+1;jj<ubicacion+1;jj++)

 

 

                               {                              if(lista1[jj].num>lista1[ii].num){                  

                                               ord2=lista1[ii].num;

                                               lista1[ii].num=lista1[jj].num;

                                               lista1[jj].num=ord2;}

                }

               

                }cout<<"["<<"-1"<<"]"<<"---->";

                for (int jj=1;jj<ubicacion+1;jj++)

                {

                               cout<<"["<<lista1[jj].num<<"]"<<"---->";

               

               

                }

                cout<<"["<<"-1"<<"]"<<endl;}

 

                system ("pause");

}

 

void lista::busca(int nodos)

{

                cout <<"El nodo numero: "<<nodos<<" tiene el dato "<<lista1[nodos].num<<endl;

                system("pause");

}

 

int lista::entre(float nume,int nodos, int *ubicacion)

{

                int cont=0;

                while(cont<=*ubicacion)

                {

                               if(cont==nodos)

                               {

                                               (*ubicacion)++;

                                               lista1[cont].sigue=*ubicacion;

                                               lista1[*ubicacion].sigue=-1;

                                               lista1[*ubicacion].num=nume;

                                               cout<<"se inserto el dato "<<endl;

                                               system("pause");

                                               return 1;

                               }

                               cont=lista1[cont].sigue;

                }

                cout<<"Se llego al final y no se encontro un nodo siguiente "<<endl;

                system ("pause");

                return 0;

 

}

int lista::eliminar2(int nodos)

{

                float nume;

cout <<"El nodo tiene el dato "<<lista1[nodos].num<<endl;

cout<<"dame nuevo dato";

cin>>nume;

lista1[nodos].num=nume;

 

                system("pause");

                return 0;

}

 

 

 

 

int lista::eliminar(int nodos, int *ubicacion)

{

                int j,nodo1,nodo2;

                float num;

                if (nodos==0 || nodos==*ubicacion)

                {

                               cout<<"nodo saliente no valido"<<endl;

                               system ("pause");

                               return 0;

                }

                for(j=0;j<=*ubicacion;j++)

                {

                               nodo1=lista1[j].sigue;

                               if(nodo1==nodos)

                               {

                                               nodo2=lista1[nodo1].sigue;

                                               lista1[j].sigue=nodo2;

                                               lista1[nodo1].sigue=0;

                                               num=lista1[nodo1].num;

                                               lista1[nodo1].num=0;

                                               cout<<"Se elimino el dato "<<num<<endl;

                                               system("pause");

                                               return 1;

                               }

}

}

void lista::estado(int cont)

{

                cont=0;

                system ("cls");

                cout<<" El estado de la lista es el siguiente"<<endl;

  

                while(cont>=0)

                {

 

                                               cout<<"["<<lista1[cont].num<<"]"<<"---->";

                                               cont=lista1[cont].sigue;

 

                              

                                               }

                system ("pause");

}

 

 

void main(void)

{

lista llamar;

int ubicacion,nodos,cont;

float nume;

ubicacion=0;

int opc;

while(opc !=10)

{

                system ("cls");

                cout<<"---------------------------LISTAS ENLAZADAS---------------------"<<endl;

                cout<<"(1.-)Insertar nodo al final"<<endl;

                cout<<"(2.-)Ver todo el arreglo en memoria"<<endl;

                cout<<"(3.-)destruir lista"<<endl;

                cout<<"(4.-) ORDENAR LISTA"<<endl;

                cout<<"(5.-)buscar nodo"<<endl;

                cout<<"(6.-)Insertar nodo entre dos nodos "<<endl;

                cout<<"(7.-)Eliminar un nodo"<<endl;

                cout<<"(8.-)ver lista"<<endl;

                cout<<"9 modificar un dato"<<endl;

                cin>>opc;

                switch(opc)

                {

                case 1:

                               cout<<"Dame dato a insertar"<<endl;

                               cin>>nume;

                               llamar.insertar(nume, &ubicacion);

                               break;

                case 2:

                               llamar.imprime(ubicacion);

                               break;

                case 3:

                               llamar.~lista();

                               break;

 

                case 4:

                               llamar.ordenar(ubicacion);

                               break;

                case 5:

                               cout<<"que numero de nodo"<<endl;

                               cin>>nodos;

                                               if(nodos>=0&&nodos<=ubicacion)

                                               {

                                               llamar.busca(nodos);}

                                               else cout<<"nodo incorrecto o inexistente"<<endl;

                                                                              system("pause");

                                               break;

                case 6:

                               cout<<"que numero de nodo quedara atras del nuevo"<<endl;

                               cin>>nodos;

                               cout<<"Dato a insertar"<<endl;

                               cin>>nume;

                               llamar. entre(nume,nodos,&ubicacion);

                                                

                                               break;

 

                case 7:

                                               cout<<"indica el num de nodo que se va a eliminar"<<endl;

                                               cin>>nodos;

                                               llamar.eliminar(nodos,&ubicacion);

                                                

                                               break;

 

                case 8:

                                                cont=0;

                                               llamar.estado(cont);

                                               break;

 

                case 9:

                                               cout<<"indica el num de nodo que se va a modificar"<<endl;

                                               cin>>nodos;

                                               llamar.eliminar2(nodos);

                                                

                                               break;

 

 

                default:

                               cout<<"-----adios----"<<endl;

                               break;

                }

}

}

 

 

 

 

 

 

 

 

 

 

IMÁGENES

 

VER LISTA VACIA

 

 

INSERTAR NODO

 

 

 

 

 

VER EL ARREGLO EN MEMORIA

DESTRUIR LISTA

 

 

 

ORNENAR LISTA

BUSCAR NODO

 

 

 

ELIMINAR NODO

 

VER LISTA

MODIFICAR UN DATO

 

 

 

 

 

Hoy habia 19 visitantes (22 clics a subpáginas) ¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis