You are on page 1of 84

UNIDAD 3.

-
Estructuras lineales
Primera parte Unidad 3
3.1 Pilas
3.1.1 Representacin en memoria
3.1.2 Operaciones bsicas
3.1.3 Aplicaciones
Estructuras de Datos

Almacenamiento
Contiguo
Lineales
Estructuras Almacenamiento
de Datos No Contiguo
No lineales
Operaciones Bsicas en Estructuras Lineales
1. Recorrido: Procesa c/elemento de la estructura.
2. Bsqueda: Recupera la posicin de un elemento especfico.
3. Insercin: Adiciona un nuevo elemento a la estructura.
4. Borrado: Elimina un elemento de la estructura.
5. Ordenacin: Ordena los elementos de la estructura de acuerdo a
los valores que contiene.
6. Mezcla: Combina 2 estructuras en una sola.
Pilas
Definicin
Estructura de datos lineal donde los elementos pueden ser aadidos o
removidos solo por un extremo. Trabajan con filosofa LIFO ( Last In-
First Out ).

Qu ejemplos de la vida diaria utilizan pilas?


3.1.2 Operaciones bsicas con pilas
-PUSH (insertar).- Agrega un elementos a la pila en el extremo llamado tope.
-POP (remover).- Remueve el elemento de la pila que se encuentra en el extremo
llamado tope.
-VACIA.- Indica si la pila contiene o no contiene elementos.
-LLENA.- Indica si es posible o no agregar nuevos elementos a la pila.
REPRESENTACIN DE PILAS:
Usando arreglos: Define un arreglo de una dimensin (vector) donde se
almacenan los elementos.

0 1 2 3 4 5

TOPE: Apunta hacia el elemento que se


encuentra en el extremo de la pila.
(inicialmente es null).
Ejemplo:
Insertar Insertar Insertar Eliminar

Inicio: A: B: C:

C
B B B

A A A A

Tope Tope Tope Tope


Tope

Null
pila
xxx yyy zzz
1 2 3 4 5 6 7 8

Tope 3 max 8

Si queremos insertar un dato en la pila PUSH, que pasos tenemos


que seguir?

Si queremos sacar un dato en la pila POP, que pasos tenemos que


seguir?
Realizar el siguiente Ejercicio
Dibuje los distintos estados de una estructura tipo pila si se llevan a
cabo las siguientes operaciones. Muestre como va quedando la pila y
el puntero al tope de la misma. Considere que la pila esta inicialmente
vacia (Tope=0):

a) Insertar(Pila,X);
b) Insertar(Pila,X);
c) Eliminar(Pila,X); Responda las siguientes preguntas:
d) Insertar(Pila,X); Con cuantos elementos quedo la pila?
e) Eliminar(Pila,X); Hubo algn caso de error? Explique
f) Eliminar(Pila,X);
g) Eliminar(Pila,X);
h) Insertar(Pila,X);
i) Insertar(Pila,X);
j) Eliminar(Pila,X);
k) Insertar(Pila,X);
Clase para trabajar con Pilas Genricas

Constructores
Mtodos auxiliares
Ejercicio: Pila temporal de Libros Devueltos
Los libros son devueltos a la biblioteca de la escuela y se van apilando
Pero puede ser que alguien solicita un libro y no se haya ingresado al sistema de
prestamos
Lo que hace que se requiera:
Buscar en la pila
Sacar el libro
Regresar la pila segn sea el caso

Hacer un men para :


Regresar libros (Push).- Ponerlos en la pila de libros devueltos
Consultar tope
Buscar libro
Sacar Libro.
Libros devueltos
Crear una clase llama libro, atributos:
ISBN
Nombre
Autor
Crea el constructor y los mtodos get para cada atributo, as como el
mtodo toString
Men Libros Devueltos:
Regresar libros (Push).- Ponerlos en la pila de libros devueltos. Se
pedir los datos para agregar el objeto tipo libro a la pila
Consultar tope, presentar el libro (con sus datos) que se encuentra
en tope de la pila.
Buscar libro . Pedir el nombre del libro a buscar dentro de la pila de
libros devueltos. Utilizar una pila auxiliar para ir guardando apilados
los libros que va a retirar hasta que se encuentre el libro o la pila
quede vaca. Al final la pila de libros devueltos quedar como en un
inicio de esta bsqueda.
Sacar Libro. Es parecido al anterior, pero aqu se retirar el libro de la
pila en caso de que se encuentre.
3.1.3. Aplicaciones con Pilas
Verificacin de parntesis en expresiones aritmticas
Cambio de notaciones de expresiones
Evaluacin de Expresiones
Evaluacin de parntesis en el Condicin para que los parntesis estn
anlisis sintctico. correctos es:
Ejemplo: 1. Que la pila este vaca
(A+B)) 2. Que no quede ningn parntesis
que cierre pendiente
(A+B)
((A+B) Ejemplo con las operaciones anteriores
([A+B])
(([[A+B]]))
Parntesis en Expresiones
Las expresiones aritmticas utilizan parntesis. Una de las
aplicaciones con pilas es verificar que los parntesis estn dispuestos
correctamente:
(A+B)
(A+B)+C
(A*(B+C)+D)
Anlisis de Parntesis
1. Leer expresin Se mete a la pila
2. Hacer un ciclo mientras no 4. If Es un ) ] } y coincide con el
elemento tope , sacar dicho
se llegue al final de la elemento de la pila
expresin: 5. Else Marcar error y terminar,
1. For(int i=0; indicando error.
i<expr.length;i++) 6. Continuar analizando hasta
encontrar error o que se termine el
2. caracter=expr[i]; string.
3. If (caracter es ( [ {
Ejemplo:
([(A+B)*(C+D)])

Dibujar el estatus de la pila segn se vaya evaluando la expresin

Cmo sabemos que los parntesis estn correctos?


Aplicaciones de Pilas
EXPRESIONES ARITMETICAS:

Una expresin aritmtica contiene constantes, variables y operaciones


con distintos niveles de precedencia.

OPERACIONES :
^ potencia
*/ multiplicacin, divisin
+,- suma, resta
Precedencia de Operadores
Nivel mayor prioridad
() parntesis
^ potencia
* / multiplicacin, divisin
+,- suma, resta Nivel menor prioridad
NOTACIONES:
Es la forma habitual de
escribir operaciones
aritmticas es la de situar
NOTACION INFIJA: el operador entre sus dos
Los operadores aparecen en medio de los operandos. operandos. El operador se
A + B, A 1, E/F, A * C , A ^ B , A + B + C evala dentro de los
operandos.
<operando> <operador> <operando>

NOTACION PREFIJA:
El operador aparece antes de los operandos.
+ AB, - A1, /EF, *AC, ^AB, ++AB, +- ABC
<operador> <operando> <operando>

NOTACION POSTFIJA:
El operador aparece al final de los operandos.
AB+, A1-, EF/, AC*, AB^, AB++, AB+C-
<operando> <operando> <operador>
Ejemplos:

Ejemplo1: Ejemplo2:
Infija: (5+9)*3/2^6-1 Infija: (a+b*c)/d*k^1
Postfija: 59+3*26^/1- Postfija: abc*+d/k1^*
Prefija: -*+xz/w^tyv Prefija: /+a*bc*d^k1
Algoritmo para convertir de expresin
aritmtica de infija a posfija
1.- Hacer un ciclo para recorrer la expresin a analizar (de izquierda a
derecha)
2.- Si es un numero se agregan a la variable de salida
3.- Los operadores (+,*,-,/) se agregan a la pila
4.- Si el caracter es ) retirar de la pila y el operador retirado agregar a la
variable de salida
5.-Si el caracter es ( ignorarlo
6. Despus de analizar toda la cadena, concatene a la variable de salida lo
que haya quedado en la pila.

Este algoritmo le faltan algunas cosas o restricciones para que funcione


correctamente
Conversin de Expresiones Pila
. Revisar los caracteres permitidos:
0-9 Nmeros
+ - * / Operadores aritmticos
({[ Apertura
)}] Cierre
Cualquier otro caracter contenido, deber de macar error y el programa
terminara.
1. Revisar los parntesis, de tal forma que la expresin sea correcta. Si la expresin es
correcta se continuar con el paso 2.
2. Realizar la conversin para que presente la expresin en: PosFija y Prefija.
Mnimamente debe realizar la conversin a PosFija.
3. Al final se debe de presentar la expresin en notacin Infija, PosFija (Prefija),
separando con , (coma) cada caracter
Pilas (Clase Stack) : Representacin en
memoria dinmica
Clase Stack
The Stack class represents a last-in-first-out (LIFO) stack of objects. It
extends class Vector with five operations that allow a vector to be
treated as a stack.
The usual push and pop operations are provided, as well as a method
to peek at the top item on the stack, a method to test for whether
the stack is empty, and a method to search the stack for an item and
discover how far it is from the top.
When a stack is first created, it contains no items.
Clase Stack
Clase Stack
The Stack class represents a last-in-first-out (LIFO) stack of objects. It
extends class Vector with five operations that allow a vector to be
treated as a stack.
The usual push and pop operations are provided, as well as a method
to peek at the top item on the stack, a method to test for whether
the stack is empty, and a method to search the stack for an item and
discover how far it is from the top.
When a stack is first created, it contains no items.
Clase Stack
Ejercicio clase Stack
Crear un ejemplo
Aplicacin Clase Stack: Programas en
Ejecucin
Crear una clase llamada Programa, con los datos de:
NombrePrograma -String
Memoria - int
PorcentajeAsignado -double
Crear constructor
Mtodos para los atributos
Hacer mtodo para mostrar todos los programas pendientes de ejecucin (estado
actual de la Pila) y datos, creando objetos tipo Programa y agregarlos a Stack (un
objeto tipo)
*Crear men con:
*1.- Agregar Programa
*2.- Terminar Programa
*3.- Verificar programa en ejecucin
*4.- Mostrar Programas Pendientes (recorrer programas)
Aplicacin Programas en Ejecucin:
Restricciones
Crear una variables a nivel de clase que controle lo siguiente:
Memoria disponible
Porcentaje del procesador libre.
Cuando se vaya agregar un programa en la Pila, deber de verificar que el
procesador tenga porcentaje disponible para la ejecucin del programa.
Tambin se deber de tener memoria para albergar el programa. Si se
cumplen estas condiciones el programa podr agregarse a la pila, en caso
contrario se mostrar un mensaje correspondiente.
En caso de que el programa se agregue a la pila se le restar la memoria
disponible y el porcentaje de procesador para asignar.
Al sacar de la pila se liberar memoria y se quitar la asignacin del
procesador (para que otros programas puedan ejecutarse).
Agregar mtodo al men:
Estatus del Sistema: Mostrar el porcentaje de procesador libre y
memoria disponible.
Se subir a la plataforma.
Restricciones Stack de Programas:
nicamente se debe de usar la clase Stack de Java como estructura
tipo Pila.
Solo podrn utilizarse las operaciones vlidas para una estructura tipo
Pila:
Push
Pop
Peek
Empty
Colas
Definicin. Es una lista lineal de elementos en la que las operaciones
de insertar y eliminar se realizan en diferentes extremos de la cola.
Trabajan con filosofa FIFO ( First In - First out), el primer elemento en
entrar es el primer elemento en salir.

Ejemplos:

Cola de automviles esperando servicio en una gasolinera


Cola de clientes en una ventanilla del banco para pagar un servicio
Colas: Representacin

Las colas pueden representarse por medio de:


- Arreglos (memoria esttica)
- Listas enlazadas (memoria dinmica).

Int max=5;
Retirar Insertar
0 1 2 3 4 Int [] v=new int[max];
Colas: Ejemplo
a) Estado
inicial d)Insertar 7 g)Retira

3 9 7 9 7 8

Fre=-1 Fre=0 Fre=1

Fin=-1 Fin=2 Fin=3 dr=3


b)Insertar 3 e)Insertar 8
h)Inserta 6
3
3 9 7 8
9 7 8
Si Fre=-1
Fre=0 Fre=0
Fin=0 Fre=0 Fre=1
Fin=0 Fin=3 Fin=3
c)Insertar 9 f)Inserta 6
Error overflow
3 9 3 9 7 8
Si Fre=-1 (cola llena) a
Fre=0
Fre=0
Fin=0
Fre=0 Si Fin=Max-1
Imp Cola Llena
pesar de que
Fin=3
Fin=1 Else
Fin=Fin+1 hay un
Error overflow elemento sin
informacin
(cola llena)
Colas: Ejemplo
h)Retira
Retira
7 8

Fre=2
Fre=-1
Fin=3 DR=9
Fin=-1 DR=8
I)Retira

Fre=3
Fin=3 DR=7

J)Inserta 88

8
Error overflow (cola llena) a pesar de que solo
Fre=3 hay un dato en la cola. Este es el peor caso que
Fin=3 se presenta un solo dato en el ltimo elemento de
la cola.
Colas: Cdigo
public class Cola<T> {
private int Frente;
private int Fin;
private int Max;
public T Dr; public boolean Retira(){
private T [] C; if(Vacia())
public Cola(){ return false;
this(10); Dr=C[Frente];
} C[Frente]=null;
public Cola(int Tam){
if(Frente==Fin)
Max=Tam;
Frente=Fin=-1;
Frente=Fin=-1;
C=(T[]) new Object[Tam]; else
} Frente++;
public boolean Inserta(T Dato){ return true;
if(Llena()) }
return false; public boolean Llena(){
Fin++;
return Fin==Max-1;
C[Fin]=Dato;
if(Frente==-1)
}
Frente=0; public boolean Vacia(){
return true; return Frente==-1;
}
} }
Crear una clase que utilice colas simples
Crear una clase Cola con tipos de dato String
Insertar 5 elementos
Agregar mtodo (en la clase Cola) que imprima el estado actual de la
Cola (todos sus elementos)
Colas Circulares
Que problemas hay con la forma de trabajar con Colas?
La Estructura estudiada anteriormente (cola) se utiliza como una lista lineal, lo
cual provoca en algunas ocasiones desperdicio de memoria.
Esto se presenta cuando hay un solo dato en la estructura, pero se encuentra
en el ltimo elemento
Para hacer uso ms eficiente de la memoria disponible podemos tratar la
estructura cola como una estructura circular. Es decir, el elemento anterior al
primero es el ltimo.
Colas Circulares

Cuando trabajamos con Colas circular, representadas por medio de arreglos.


Debe definirse un tamao mximo y dos variables de trabajo: Frente y Fin.
Las cuales tendrn la siguiente funcin.

Frente: contiene la posicin del elemento de la COLA donde se encuentra el dato


mas antiguo insertado.
Fin : contiene la posicin del elemento de la COLA donde se encuentra el dato
ms reciente insertado.

Int max=4, Fre=-1,Fin=-1;


Colas Circulares Si Fin=max-1 entonces
Fin=0

a) Estado
e) Inserta 7 i) Inserta 4
inicial
Fre=-1 9 5 3 7 4 3 7
Fre=0 Fre=2
Fin=-1
Fin=3 Fin=0
b) Inserta 9 f) Inserta 666
j) Inserta 1
9 5 3 7
Fre=0 9 Fre=0 4 1 3 7
Fre=2
Fin=0 Fin=3
overflowSi Fre=0 and Fin=Max-1 entonces Fin=1,
c) Inserta 5 Imprime Overflow
g) Retira
Fre=0 9 5
Fre=1 5 3 7 k) Inserta 55
Fin=1 Fre=2 4 1 3 7
Fin=3,
d) Inserta 3 dr=9 Fin=1,
Fre=0 9 5 3 h) Retira 3 7

Fre=2 Overflow Si Fin+1=Fre entonces


Fin=2
Fin=3, Imprime Overflow
dr=5
Colas Circulares

L) Retira o) Retira
Fre=3 4 1 7
Si Fre=-1 entonces
Fre=-1 Imprime UNDERFLOW
Fin=1,dr=3
Fin=-1,dr=
m) Retira
4 1
Fre=0
Si Fre=max-1 entonces
Fin=1,dr=7 Fre=0

n) Retira
1
Fre=1
Fin=1,dr=7
) Retira Si Fre=Fin entonces
Fre=-1
Fre=-1 Fin=-1
Fin=-1,dr=1
Colas Circulares
Algoritmo RetiraCola

Algoritmo InsertaColaCir
Si Fre= -1 Entonces
Si (Fre=0 y Fin=Max-1) o (Fin+1=Fre) Entonces Imprime Cola Vacia
Imprime Cola Llena si_no
si_no DatoRetirado=C[Fre]
si Fin=Max-1 entonces Si Fre=Fin Entonces
Fin=0 Fre=-1
si_no Fin=-1
Fin=Fin+1 si_no
fin_decision Si Fre=Max-1 Entonces
C[Fin]=dato Fre=0
Si Fre= - 1 Entonces Si_no
Fre=0 Fre = Fre + 1
Fin_decison Fin_decision
Fin_decision Fin_decision
Fin_Algoritmo Fin_Decision
Fin_Algoritmo
Cola Circular

Cola Simple
Menu Estructura Tipo Cola:
Cola Simple (ya revisado)
Cola Circular ( 1.-Agregar -aleatorios , nmeros entre 1 y 100-,
2.- Eliminar, 3.- Ver Estado Imprimir Todos- )
Clase Queue de Java (Utilizar 3 mtodos)
Proyecto colas: Sucursal Bancaria
Se subir a la plataforma un pequeo proyecto simulando una
sucursal bancaria
Tarea Colas para investigar:
Se dejar en la plataforma
Listas
Temario de Listas
3.3 Listas
3.3.1 Operaciones bsicas
3.3.2 Tipos de listas: simplemente enlazadas, doblemente enlazadas y
circulares
3.3.3 Aplicaciones
Listas: Introduccin
Las estructuras de datos analizadas anteriormente requieren de la
definicin del tamao mximo de memoria y esta permanece
inalterable a lo largo de la ejecucin del programa, ahora
analizaremos el concepto de estructura dinmica de datos. Este tipo
de estructuras requiere de un tipo de datos conocidos con el nombre
de referencias (apuntadores).
La principal ventaja que presenta manejar variables referencia es que
se pueden adquirir posiciones de memoria a medida que se
necesitan, y liberarlas cuando ya no se requieran. De esta manera se
pueden crear estructuras dinmicas .
Listas Definicin:
Una lista es una coleccin lineal de elementos llamados nodos donde
el orden de los mismos se establece mediante punteros o referencias y
existe un puntero/referencia especial llamado inicio para localizar al
primer elemento.
Ejemplos:

inicio
*Lista enlazada de 0 elementos

Informacin enlace

inicio
* Lista enlazada de 4 elementos
Listas: Caractersticas
Este tipo de lista tiene como caracterstica que el campo siguiente del
ltimo nodo de la lista no seala a ningn nodo (su valor es la
constante null).
Los nodos de las listas
Un nodo se divide en 2 partes:
Informacin: Contiene la informacin del elemento.
Enlace: Contiene la direccin del siguiente nodo de la lista. Informacin Enlace

informacin enlace

Nodo
Como se almacenan las Listas:
1. Arreglos: La relacin lineal esta implcita en la relacin fsica de los
elementos. Desventaja: Almacenamiento esttico y tamao fijo.

2. Elementos enlazados: Agrega a cada elemento un campo de


enlace, no requieren almacenamiento contiguo en memoria, se
pueden aadir y borrar elementos fcilmente.
Listas:
Coleccin lineal de elementos llamados nodos.
Existe un elemento llamado inicio que apunta al primer elemento de
la lista.
Cada nodo contiene un campo de enlace que apunta al siguiente
elemento.
El ltimo elemento de la lista en su campo enlace apunta a nulo.
Al principio el apuntador inicio apunta a nulo.
Operaciones con Listas Simples
Insertar: Agrega un elemento a la lista.
Eliminar: Retira un elemento de la lista.
Buscar: Busca un elemento en la lista.
Recorrer: Visita todos los elementos de la lista.
Vaca: Indica si la lista contiene o no elementos.
Tamao: Indica el nmero de elementos de la lista.
Enlazando listas simples:
1) Inicialmente vaca
Frente = NULL
Fin = NULL

2) Insertar Dato1
INSERTAR AL FRENTE
Frente
A
Frente
Apunta al inicio de la Fin
lista Apunta al ltimo
de la lista
Enlazando Listas Simples
3) Insertar Dato2
INSERTAR LA FRENTE
Frente

Nuevo A

B
Fin Apunta al ltimo
de la lista
Listas: Cdigo
Hacer un men con lista simple
Agregar elementos al Frente
Agregar Elementos al Final
Mostrar Frente
Mostrar Fin
Mostrar todos los elementos
Borrar Elementos de una Lista
Casos que se pueden presentar:
El mtodo recibe como parmetro el tipo T que tiene la
informacin a buscar
1.- Que la lista este vaca (regresar false)
Caso 2 (Borrar Lista Sencilla)
2.- Ubicar al nodo teniendo 2 elementos de referencia Ant (nodo anterior) y Tra (nodo a
eliminar)
hacer Tra=frente
bandera=false (indicar si se encontr o no el resultado)
hacer un ciclo mientras tra!=null
{ if tra.info=al dato a buscar
Aqu entra porque
bandera=true;
encontr el elemento
salir del ciclo
Ant=Tra;
Tra=Tra.Damesig();
}
Si la bandera es falsa retornar band (no se encontr)
3.- El dato a buscar sea el que este al frente:
if Frente===Fin (solo hay un nodo)
Frente=Fin=null;
retornar true;
4.- Si el dato a borrar es el frente, pasar al nodo siguiente el frente
Frente=Frente.DameSig
retornar true;
5.- Si el dato a borrar es igual al Fin (Tra==Fin), mover el fin
Fin=Ant; Fin.SetSig=null; retornar true;
6.- Esta entre dos nodos ant.setSig=Tra.DameSig; retornar true;
Casos para borrar
1.-Lista vaca
2.- No se encontr
3.- El nodo es fin:
fin=ant
Fin.setsiguiente(null)
4.- El nodo es el frente:
1. Frente=frente.getSiguiente;
5.- El nodo esta entre 2 nodos:
ant.setsiguiente=tra.DameSig()
tra.setsiguiente=null
Opciones clase Lista:
Agregar elementos al Frente
Agregar Elementos al Final
Mostrar Frente
Mostrar Fin
Insertar Ordenado
Buscar un elemento
Borrar
Mostrar todos los elementos
Listas doblemente Ligadas
Una lista doble es una estructura lineal de elementos llamados nodos los cuales
contienen dos campos de enlace: uno al elemento anterior y otro al elemento
siguiente de la lista.

Anterior Informacin Siguiente


Listas doblemente ligadas

El primer nodo de la lista contiene nulo en su enlace al elemento anterior y el


ltimo nodo de la lista contiene nulo en su enlace al elemento siguiente.

Fre Fin

Una lista doblemente ligada puede crearse bajo uno de los siguientes criterios:

1.- Insertando el nuevo nodo siempre al inicio de la lista.


2.- Insertando el nuevo nodo siempre al final de la lista.
3.- Mantener la lista ordenada ascendente o descendente por uno o ms campos de
informacin.
Ejemplos:
Lista Vaca
Frente= Fin
=
Lista de un solo elemento

Frente A

Fin
Lista de tres elementos

Frente A B C

Fin
Implementando Listas Doblemente Ligadas

Para desarrollar la lista doblemente ligada se requiere definir la


clase nodo, que contendr tres atributos: Ant (apuntador al nodo
anterior), Info (apuntador al objeto que contiene la informacin) y
Sig (apuntador al siguiente nodo).
class NodoDBL <T> {
public NodoDBL<T> Ant;
public T Info;
public NodoDBL<T> Sig;
public NodoDBL(T D) {
Info=D;
Ant=null;
Sig = null;
}
}
Operaciones con listas dobles
Insertar: Agrega un elemento a la lista.
Eliminar: Retira un elemento de la lista.
Buscar: Busca un elemento en la lista.
Recorrer hacia adelante: Visita todos los elementos de la lista desde el inicio
hasta el final.
Recorrer hacia atrs: Visita todos los elementos de la lista desde el final hasta el
inicio.
Vaca: Indica si la lista contiene o no elementos.
Tamao: Indica el nmero de elementos de la lista.
Ordenar: Ordenar los nodo de forma ascendente
InsertarOrdenado: Agregar un elemento, ubicando la posicin correspondiente.
public boolean Busca(T Dato) {
String IdBusco = Dato.toString();
NodoDBL<T> Aux = Frente;
NodoDBL<T> Ant = null;
boolean Band = false;

while (Aux != null) {


if (IdBusco.compareTo(Aux.Info.toString()) == 0) {
Band = true;
Dr = Aux.Info;
break;
}
Ant = Aux;
Aux = Aux.DameSig();
}
return Band;
}
Proyecto Listas simples y Listas dobles
Pasar de una Lista Sencilla Generada aleatoriamente de un rango de
nmeros (que se pedir) y un numero de elementos , a una
listadoble, de forma ordenada.
Se debe de poder ordenar Ascendente
Descendente
Opciones que se deben incluir:
Generar lista simple.- Esta opcin debe de pedir lo siguiente:
Numero de nodos que se van a generar
Rango de valores con los cuales se generarn los nmeros
La opcin generara una lista de enteros con N numero de nodos, cada nodo se generar
aleatoriamente, respetando el rango de valores indicado.
Crear lista doble Orden Ascendente.- Esta opcin generar una lista doble a
partir de la lista sencilla, generando los valores en orden ascendente (de
menor a mayor).

Crear lista doble Orden Descendente.- Esta opcin generar una lista doble a
partir de la lista sencilla, generando los valores en orden descendente(de
mayor a menor).
Se subir a la plataforma Moodle
Listas Circulares: Investigar
Qu es una Lista Circular? Incluye una imagen.
Cmo se representan las listas circulares?
Menciona diferencias entre la lista sencilla y la lista circular
Escribe un mtodo para agregar elementos al final en una lista
circular. Recuerda que la lista debe de ser genrica. Agrega todos los
comentarios posibles al cdigo para que sea ms entendible.
Listas Circulares: Investigar
Entregar impreso
Para lunes 13 de Nov
Agregar las referencias en donde se obtuvo la informacin
Incluir hoja de presentacin

You might also like