Está en la página 1de 19

UNIVERSIDAD TECNOLGICA DE CAMPECHE

TCNICO SUPERIOR UNIVERSITARIO EN: TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN

REA:
SISTEMAS INFORMTICOS.

DOCENTE:
JULIANA KARINA ALEJANDRO JIMENEZ

ALUMNOS: MARA ELENA DE LA CRUZ HERNNDEZ. DIANA PEREZ SALVADOR GABRIEL RAMOS HERNANDEZ MARCO ANTONIO MORA LOPEZ

UNIDAD III: LISTAS GRADO: 4 GRUPO: A

SEPTIEMBRE DICIEMBRE 2013

SAN ANTONIO CRDENAS, CD DEL CARMEN, CAMPECHE

LISTAS

Una lista es una estructura de datos homognea y dinmica, que va a estar formada por una secuencia de elementos, donde cada uno de ellos va seguido de otro o de ninguno.

Homognea: Todos los elementos que la forman tienen el mismo tipo base. Dinmica: Puede crecer o decrecer en tiempo de ejecucin segn nuestras necesidades. Las No L1: L2: gato, listas tienen el pueden mismo gato, canario, ser nmero diferentes de si: elementos: perro. cerdo.

Cuando, aun teniendo el mismo nmero de elementos, estos son distintos: L1: L2: gato, gato, perro. cerdo.

Cuando, aun teniendo el mismo nmero de elementos y siendo estos los mismos, no L1: L2: estn dispuestos en gato, perro, el mismo orden. perro. gato.

Hay varios criterios para clasificar las listas: segn su modo de acceso o segn su informacin de acceso. Modo De Acceso.

Atendiendo a este, se dividen en densas y enlazadas. El modo de acceso es independiente Listas de la implementacin realizada. densas

Se caracterizan porque los elementos siguen una secuencia fsica. Sabemos cuales es el siguiente elemento porque para acceder a l hemos tenido que pasar por todos los anteriores.

La El

localizacin primero si si para

de es llegar a el

un

elemento primer elemento pasado

cualquiera de N-1 la

ser: lista.

N-esimo

hemos

por

elementos.

Siguen una estructura fsica secuencial luego se pueden implementar utilizando ficheros, ARRAYS y punteros.

CARACTERISTICAS: 1- La lista debe estar ordenada. 2- A diferencia de las pilas y las colas se pueden extraer e insertar elementos en cualquier parte de la lista. 3-Las listas enlazadas permiten inserciones y eliminacin de nodos en cualquier punto de la lista en tiempo constante, pero no permiten un acceso aleatorio. 4- Existen diferentes tipos de listas enlazadas: Listas enlazadas simples, listas doblemente enlazadas, listas enlazadas circulares y listas enlazadas doblemente circulares. 5- Pueden ser implementadas en muchos lenguajes. Lenguajes tales como Lisp y Scheme tiene estructuras de datos ya construidas, junto con operaciones para acceder a las listas enlazadas. Lenguajes imperativos u orientados a objetos tales como C o C++ y Java, respectivamente, disponen de referencias para crear listas enlazadas.

PASOS PARA CREAR UNA LISTA 1- Comprobar si est vaca 2- Buscar la posicin (orden) 3- Crear enlaces.

Se tienen dos casos particulares para la insercin de un elemento. 1- Insertar el nuevo nodo en el frente (principio de la lista). 2- Insertar el nuevo nodo en cualquier otro lugar de la lista. Para la eliminacin de un elemento en una lista enlazada antes de proceder con la eliminacin deberemos comprobar que no est vaca. Tambin en este caso se tienen dos consideraciones particulares. 1.-El elemento a suprimir esta al principio de la lista. 2.-El elemento se encuentra en cualquier otro lugar de la lista.

Uso de una lista con respecto a un arreglo

ARRAYS O ARREGLOS MULTIDIMENSIONALES

Tal y como explicamos en su momento, ser posible crear arrays con ms de una dimensin, pasando de la idea de lista, vector o matriz de una sola fila a la idea de matriz de m x n elementos, estructuras tridimensionales, tetradimensionales, etc. La sintaxis ser:

Dim [Nombre del array]([dimensin1, dimensin2, ...]) As [Tipo de variable]

Si no se declara el tipo de variable el array ser tipo Variant por defecto. Conviene tener cuidado con esto y seguir las mismas pautas que hemos indicado para las variables. La declaracin de una matriz tradicional de m x n elementos podra ser:

Dim A(3, 2) As Integer

El nmero de elementos declarados depende de cmo tengamos establecido Option Base. Si est fijado en uno, la matriz ser de 3 filas (1, 2 y 3) y dos columnas (1 y 2) siendo por tanto el nmero de elementos 3 x 2 = 6 mientras que si est fijado en cero tendremos adems una fila cero y una columna cero, con lo que el nmero de elementos ser de 4 x 3 = 12.

Vamos a definir una matriz con el mismo ejemplo que usamos cuando hablamos de pseudocdigo: queremos almacenar en una matriz el nmero de alumnos con que cuenta una academia ordenados en funcin del nivel y del idioma que se estudia. Tendremos 3 filas que representarn Nivel bsico, medio o de perfeccionamiento y 4 columnas que representarn los idiomas (1 = Ingls, 2 = Francs, 3 = Alemn y 4 = Ruso). La declaracin de dicha matriz sera:

Dim Alumnosfxniveleidioma(3, 4)

Podramos asignar contenidos de la siguiente manera:

Alumnosfxniveleidioma(1, 1) = 7 Alumnosfxniveleidioma(1, 2) = 14

Alumnosfxniveleidioma(1, 3) = 8 Alumnosfxniveleidioma(1, 4) = 3 Alumnosfxniveleidioma(2, 1) = 6 Alumnosfxniveleidioma(2, 2) = 19 Alumnosfxniveleidioma(2, 3) = 7 Alumnosfxniveleidioma(2, 4) = 2 Alumnosfxniveleidioma(3, 1) = 3 Alumnosfxniveleidioma(3, 2) = 13 Alumnosfxniveleidioma(3, 3) = 4 Alumnosfxniveleidioma(3, 4) = 1

La representacin grfica que podramos asociar a esta asignacin de datos sera esta matriz:

La organizacin de la informacin en matrices nos generar importantes ventajas a la hora del tratamiento de datos en nuestros programas.

Para terminar en cuanto a multidimensionalidad, veamos casos de declaraciones con ms de dos dimensiones. Para ello volveremos al ejemplo del conteo de coches que ya hemos usado. La forma de declarar esos array sera la siguiente:

Declaracin Duracin conteo del Tipo de array Basic (Nc

con Visual

es

Nmerodecoches) Array de un localizador (hora) Array Varios das de dos (hora y Dim Nc(24, 31)

Un da

Dim Nc(24)

localizadores da) Array de

tres (hora, Dim Nc(24, 31, 12)

Varios meses

localizadores da y mes) Array de

cuatro (hora, da, Dim Nc(24, 31, 12, 2999)

Varios aos

localizadores mes y ao) Array de

cinco (hora, da,

Varios siglos

localizadores

Dim Nc(24, 31, 12, 2999, 21)

mes, ao y siglo)

Tipos de listas y sus componentes


Lista Lineal

Una lista lineal es un conjunto de N nodos l1, l2, ln, con n 0, cuyas propiedades estructurales esenciales incluyen slo las posiciones lineales (unidimensionales) relativas de los nodos; para ella se definen operaciones como las siguientes: Tener acceso a un nodo. Insertar y eliminar un nodo en la lista. Combinar dos o ms listas en una. Dividir una lista en dos o ms listas. Determinar la cantidad de nodos de la lista. Ordenar la lista de acuerdo a un criterio. Buscar un elemento bajo una condicin. Lista enlazada

Un nodo de una lista simplemente enlazada contiene dos campos: datos (contiene un elemento de la lista) ysiguiente (almacena un enlace al siguiente nodo de la lista).

El campo siguiente del ltimo nodo contiene un smbolo especial que indica el final de las lista. Se accede a la lista por medio de un apuntador al primer elemento y solo se puede recorrer la lista en un sentido, del primer nodo al ltimo nodo.

Lista doblemente enlazada

Cada nodo contiene tres campos: un campo que almacena el elemento de la lista y los otros dos almacenan los enlaces a los nodos precedente y siguiente de la lista. Se usan punteros nulos para marcar ambos extremos de la lista. Listas enlazadas

Son aquellas en las que cada elemento que los compone contiene la informacin necesaria para acceder al elemento siguiente. La localizacin de un elemento cualquiera ser:

Un elemento de la lista tendr la direccin K si K es el primero y K es conocido (direccin Estar en el Dir. J si J est de contenida en el elemento inicio). anterior.

Informacin de acceso. Listas ordinales

Los elementos se van colocando en la lista a medida que llegan y se identifican por el orden de llegada. El acceso a un elemento es por su orden o posicin relativa dentro de la lista. Listas calificadas

Los elementos se clasifican por una clave y pueden estar ordenados o no estarlo.

A un elemento se accede por la informacin contenida en un campo clave. Diferencias: En la primera clase importa en orden de llegada, mientras que en la segunda depende de la clave.

3.determinar en que casos se pueden utilizar los diferentees tipos de listas. 4.como se construye y opera una lista. sintaxis para crear una lista. (3 y4 de mora)

Sintaxis para insertar, eliminar y accesar a una lista


Como crear una lista? Sintaxis:

' Create an array of type String(). Dim winterMonths = {"December", "January", "February"} ' Create an array of type Integer() Dim numbers = {1, 2, 3, 4, 5} ' Create a list of menu options. (Requires an extension method ' named Add for List(Of MenuOption) Dim menuOptions = New List(Of MenuOption) From {{1, "Home"}, {2, "Products"}, {3, "News"}, {4, "Contact Us"}}

Para borrar una lista:

Tenemos que tener en cuenta que "borrar" es una variable que en el bucle recorrera las difenrentes posiciones para que el procedimiento las borre. Les tiene que quedar una cosa asi: For borrar = lista.ListCount - 1 To 0 Step -1 lista.RemoveItem (borrar)

Y luego se tiene que cerrar el ciclo.

Ejemplo de cmo agregar y eliminar lista:

Un control Label1 y en el Caption escribir "Nombre". Un Command1 y en el Caption "Aadir". Al Command2 "Eliminar Seleccionado". Luego agrega un Text1 al lado del control Label1 y un control List1. El elemento que escribamos en el Text1, cuando se presione " Aadir " se agregar al control List1, cuando presionemos el Command2 se eliminar de la lista el elemento que se encuentre seleccionado.

Colocar el cdigo en el formulario: Private Sub Command1_Click() If Text1 = "" Then MsgBox "Debe ingresar un nombre para poder agregar un elemento", vbQuestion + vbOKOnly, "Datos incompletos" 'Salimos de la rutina ya que no se ha ingresado nada en el control text1

Exit Sub End If 'Agregamos el contenido del Text1 en el control List1 List1.AddItem Text1 End Sub Private Sub Command2_Click() 'Si la lista no est vaca entonces podemos eliminar If List1.ListIndex <> -1 Then 'Eliminamos el elemento que se encuentra seleccionado List1.RemoveItem List1.ListIndex End If End Sub

Para accesar a una lista: Ejemplo:


Escribimos el cdigo para el primer botn que ser buscar por ndices el cual capturaremos el nmero que ingresemos por el TEXTBOX1 y empezaremos a buscar al hacerle clic en el BUTTON1 que es el BUSCAR POR INDICE:

Entonces hacemos doble clic en el botn BUSCAR POR INDICE y dentro de sus funcines escribimos el siguiente cdigo: 'primero capturamos el numero ingresado por el TEXTBOX DimindiceAsInteger indice = TextBox1.Text 'Ahora nos fijamos que este dentro del rango de la cantidad de tems

If (indice> 0) And (indice< (ListBox1.Items.Count + 1)) Then ' Si existe mostramos el tem en un mensaje MsgBox(ListBox1.Items.Item(indice - 1)) End Else ' Si no existe le advertimos que el ndice no existe MsgBox("No Existe el ndice especificado...") EndIf

Ahora hacemos doble clic en el botn BUSCAR POR ITEM para que recuperemos el tem escrito en el TEXTBOX2:

Hacemos doble clic en el botn2 BUSCAR POR ITEM y dentro de su funcin escribimos el siguiente cdigo: recogemos el escrito del TEXBOX2

DimitemAsString item = TextBox2.Text ahora lo buscamos es capaz de encontrar solo poniendo las tres primeras letras del tem If (ListBox1.FindString(item)) > (-1) Then MsgBox("Se encuentra en el indice: " + (ListBox1.FindString(item) + 1)) End Else MsgBox("No Existe el tem especificado...") EndIf

Ejemplos:

EJEMPLO DE CDIGO PARA AGREGAR ELEMENTOS A UNA LISTA DE VISUAL BASIC MUESTRA CDIGO DE VISUAL BASIC PARA AGREGAR ELEMENTOS A UNA LISTA
Sub Example1() DialogSheets(1).ListBoxes(1).ListFillRange = "MyWorksheet!A2:A15" End Sub

Nota: "MyWorksheet" es el nombre de la hoja de clculo que contiene los datos que desea en el cuadro de lista.

Para rellenar un cuadro de lista con datos de las celdas de una hoja de clculo
Sub Example2() DialogSheets(1).ListBoxes(1).List = _ Array("Mon", "Tue", "Wed", "Thu", "Fri") End Sub

Para rellenar un cuadro de lista con una matriz


Normalmente, se rellenan los cuadros de lista con una columna de datos. Si necesita llenar un cuadro de lista con una fila de datos, utilice este cdigo:
Sub Example3() DialogSheets(1).ListBoxes(1).List = _ Worksheets("Sheet1").Range("A1:F1") End Sub

Nota: "Sheet1" es la hoja de clculo que contiene los datos.

Para rellenar el cuadro de lista con datos de una matriz horizontal de celdas MUESTRA CDIGO DE VISUAL BASIC PARA QUITAR ELEMENTOS DE UNA LISTA

Sub Example4() DialogSheets(1).ListBoxes(1).RemoveAllItems End Sub

Para obtener informacin adicional, consulte el artculo siguiente en Microsoft Knowledge Base: 105877 XL: RemoveItem y RemoveAllItems mtodos no funcionen

Para borrar todos los elementos de un cuadro de lista con RemoveAllItems MUESTRA CDIGO DE VISUAL BASIC PARA RECUPERAR ELEMENTOS DE UNA LISTA
Sub Example6() Dim LTemp As Variant Dim LItem As Variant Dim Counter As Integer Dim CurList as ListBox ' Set an object name for easy referencing of the list box. Set CurList = DialogSheets(1).ListBoxes(1) ' Put the Selected array into the variable LTemp. LTemp = CurList.Selected ' Initialize a Counter variable. Counter = 1 ' Iterate through the loop once for each item in the array. For Each LItem In LTemp ' If the value of the current item is True... If LItem = True Then ' Show a message box indicating the item is selected. MsgBox CurList.List(Counter) & " is selected." End If ' Increment the Counter to get next selected item. Counter = Counter + 1 Next End Sub

Para obtener informacin adicional, consulte el artculo siguiente en Microsoft Knowledge Base: 124214 XL: Devuelve un valor de un cuadro de lista en Visual Basic

Para recuperar el elemento seleccionado en un cuadro de lista de seleccin nica


Sub Example6() Dim LTemp As Variant Dim LItem As Variant Dim Counter As Integer Dim CurList as ListBox ' Set an object name for easy referencing of the list box. Set CurList = DialogSheets(1).ListBoxes(1) ' Put the Selected array into the variable LTemp. LTemp = CurList.Selected ' Initialize a Counter variable. Counter = 1 ' Iterate through the loop once for each item in the array. For Each LItem In LTemp ' If the value of the current item is True... If LItem = True Then ' Show a message box indicating the item is selected. MsgBox CurList.List(Counter) & " is selected." End If ' Increment the Counter to get next selected item. Counter = Counter + 1 Next End Sub

Para obtener informacin adicional, consulte el artculo siguiente en Microsoft Knowledge Base: 111564 XL: Determinar los elementos seleccionados en un cuadro de lista

Para recuperar los elementos seleccionados de un cuadro de lista de seleccin mltiple


Sub Example7() Dim mtemp As Object Dim myList Dim LItem As Variant ' Set mtemp as a ListBox object.

Set mtemp = DialogSheets(1).ListBoxes(1) ' Set mtemp = myList. myList = mtemp.List ' Create a For-Each Loop. For Each LItem In myList ' Display the selected item. MsgBox Litem Next End Sub

También podría gustarte