• Domingo 17 de Noviembre de 2024, 21:50

Autor Tema:  Ayuda Para Ordenar Lista Enlazada  (Leído 5880 veces)

luli^^

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Ayuda Para Ordenar Lista Enlazada
« en: Lunes 5 de Junio de 2006, 21:51 »
0
hola  :comp:  tengo un problema, tengo que hacer un programa que consistente en la ordenacion de una lista doblemente enlazada por el metodo de la burbuja en lenguaje c++, la que la ordenacion consistiria en ir cambiando los punteros siguiente, anterior... como si fuera el metodo de la burbuja usado para arrays pero aplicado a una lista doblemente enlazada.
Si alguien me puede dar alguna idea.... es k no se muy b como hacerlo... y tengo que entregarlo en una semana aproximadamente.
Espero que alguien me pueda ayudar. Gracias por adelantado  ;)

Luli. Zgz

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Ayuda Para Ordenar Lista Enlazada
« Respuesta #1 en: Martes 6 de Junio de 2006, 07:47 »
0
Metodo de la burbuja ?   :blink:  :blink:  :blink:  :blink:
en mi vida he oido hablar de eso, sera porque no entraba a clases pero he hecho un metodo para ordenar alfabeticamente y lo he utilizado en una lista doblemente enlazada hace años pero te lo pongo para que lo veas espero que os sirva:



[CODE]
#include<conio.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>

void qs(char *B[100], int inf, int sup);
void main ()
{
 char A[100][200],*B[100];
 int NE;   clrscr ();
 cout<<"\nDA EL NUMERO DE NOMBRES QUE VAS A INTRODUCIR\n";
 cin>>NE;cout<<"\n DA LOS NOMBRES";
 for(int i=1;i<NE;i++)
 {  cout<<"\n"<<i<<".";  fflush(stdin);
  gets(A);  B=A;  }  qs(B, 0, NE-1);
  clrscr ();  cout<<"\nNOMBRES ORDENADOS";
  for(i=0;i<NE;i++)   cout<<"\n"<<i<<"."<<B;
  getch ();  }void qs(char *B[100], int inf, int sup)
{ register izq, der;
 char *mitad, *x;
 izq=inf; der=sup;
 mitad=B[(izq+der)/2];
 do{ while(strcmp(B[izq],mitad)<0 && izq<sup)  izq ++;
 while(strcmp(mitad,B[der])<0 && der>inf)
 der --;
 if(izq<=der){ x=B[izq];
 B[izq]=B[der]; B[der]=x;
 izq++; der--; }}while(izq<=der);
if(inf<der) qs(B, inf, der);if(izq<sup) qs(B, izq, sup);}

//obvio esta hecho con turbo C 3.0 el de la pantallita azul
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


x.cyclop

  • Miembro de PLATA
  • *****
  • Mensajes: 1039
  • Nacionalidad: mx
    • Ver Perfil

- Great works aren't produced on the first try. [Ernest Hemingway]
- Be ambitious, yet realistic in your dreams. Do something that makes a positive impact. Don’t let the nay-sayers get you down. [Bjarne Stroustrup]

lilithmabc

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:lista doblemente enlazada
« Respuesta #3 en: Viernes 6 de Mayo de 2011, 17:57 »
0
soy nuevo en esta pagina y no encuentro donde pener una pregunta asi q lo hice aca

es que tengo un problema con este codigo queria saber si tu me podrias dar una mano
realizar un programa que simule el funcionamiento del boton deshacer y rehacer de Word. Las funciones que debe tener el programa son : ingresar operacion, guardar (eliminar las operaciones de toda la lista), deshacer(*ant), rehacer(*sig), imprimir todas las operaciones segun el orden de entradas.

gracias