Cómo ordenar una lista

Esta es una pregunta que me surgió al estar diseñando una lista reordenable por el usuario. Es un tema básico, pero como me tardé en recordar cómo se hacía, anexo los pasos.

 

ID

Texto

Sig

Ant

1

a

2

-1

2

b

3

1

3

c

4

2

4

d

5

3

5

e

6

4

6

f

7

5

7

g

8

6

8

h

9

7

9

i

10

8

10

j

1000

9

Esta es una lista.

 

El primer registro tendrá esta forma.

ID

Texto

Sig

Ant

1

a

1000

-1

 

Para insertar un registro después de un registro “base”, haremos lo siguiente:

 

base.sig = insertado.id

insertado.sig = base.sig

 

base+ 1.ant = insertado.id

insertado.ant = base + 1.ant

 

Para borrar un registro, haremos lo siguiente:

 

borrado – 1.sig = borrado.sig

borrado + 1.ant = borrado.ant

Y luego borramos el registro.

 

Para mover un registro para que quede después de un registro “base”, haremos lo siguiente:

 

base.sig = movido.id

movido.sig = base.sig

movido – 1.sig = movido.sig

 

base + 1.ant = movido + 1.ant

movido.ant = base.id

movido + 1.ant = movido.ant

 

Share
Acerca de

Armando Franco tiene amplia experiencia en las áreas de sistemas, compras y proyectos. Cuenta con una Maestría en Administración de Tecnologías de Información, y las certificaciones Certified Purchasing Manager, Microsoft Office 2010 Specialist, Expert y Master.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.