2
Ingeniero Eduardo Robayo 1 ESTRUCTURAS DE DATOS TEMA: LISTA GENERICA ORDENADA Aunque existen estrategias para ordenar listas desordenadas, existe una estrategia que permite ordenar la lista desde el comienzo, esto es, que a medida que se van ingresando los nodos, ellos se van ordenando, ya sea de forma ascendente o de forma descendente. Ejemplo, crear una lista de enlace simple y que ingrese los siguientes datos enteros en el siguiente orden: 10, 5, 7, 50 Entonces después de ingresar los datos, la lista debe quedar ordenada de la siguiente forma: 5, 7, 10, 50, Esto nos lleva a entender que con ésta estrategia no se requiere de un método para ordenar la lista después de que los nodos han sido ingresados, sino que el método “Ingresar” es el que se encarga de ir ordenando los nodos a medida que se van ingresando. Analicemos el método “Insertar” para generar una lista ordenada.

Lista Generica Ordenada NUEVO

Embed Size (px)

DESCRIPTION

Lista Generica Ordenada NUEVO

Citation preview

Page 1: Lista Generica Ordenada NUEVO

Ingeniero Eduardo Robayo

1

ESTRUCTURAS DE DATOS

TEMA: LISTA GENERICA ORDENADA

Aunque existen estrategias para ordenar listas desordenadas, existe una estrategia que permite

ordenar la lista desde el comienzo, esto es, que a medida que se van ingresando los nodos, ellos se

van ordenando, ya sea de forma ascendente o de forma descendente.

Ejemplo, crear una lista de enlace simple y que ingrese los siguientes datos enteros en el siguiente

orden:

10, 5, 7, 50

Entonces después de ingresar los datos, la lista debe quedar ordenada de la siguiente forma:

5, 7, 10, 50,

Esto nos lleva a entender que con ésta estrategia no se requiere de un método para ordenar la

lista después de que los nodos han sido ingresados, sino que el método “Ingresar” es el que se

encarga de ir ordenando los nodos a medida que se van ingresando.

Analicemos el método “Insertar” para generar una lista ordenada.

Page 2: Lista Generica Ordenada NUEVO

Ingeniero Eduardo Robayo

2

Método Insertar (Entero X)

Crear nuevo nodo

Pasarle el valor que llega al nuevo nodo

Si la lista está vacía

El nuevo nodo se convierte en el nodo raíz

De lo contrario

Si el nuevo es menor que raíz

Entonces se agrega antes de la actual raíz

De lo contrario

Se crean dos nodos

Nodo actual //para recorrer la lista

Nodo anterior//para saber el nodo anterior al actual

Los nodos actual y anterior empiezan en raíz

Haga mientras (nuevo >= actual && actual.sig !=null)

Anterior = actual

Actual = actual.siguiente

Fin haga mientras

Si nuevo >= actual

Actual.siguiente = nuevo

De lo contrario

Nuevo.siguiente=actual

Anterior.siguiente=nuevo

Fin si

Fin si

Fin si