www.monografias.

com

Estructura de datos
Indice 1. Base De Datos 2. Recursividad 3. Lista 4. Árboles binarios. 5. Variables Constantes 1. Base De Datos Una base de datos de red esta formado por una colección de registros, los cuales están conectados entre sí por medio de enlaces. Registro.- Es una colección de campos (atributos) Campos.- Contiene almacenado solamente un valor. Enlace.- Asociación entre dos registros, así que podemos verla como una relación estrictamente binaria. Estructura de datos de red, abarca más que la estructura de árbol porque un nodo “hijo” en la estructura de red puede tener más de un padre. Diagramas de estructura de datos. Es un esquema que representa el diseño de una base de datos de red. Este modelo se basa en representaciones entre registros por medio de ligas, existen relaciones en las que participan solo dos entidades(binarias) y relaciones en las que participan más de dos entidades (generales) ya sea con o sin atributo descriptivo en la relación. La forma de diagramado consta de dos componentes básicos: Celdas: representan a los campos del registro. Líneas: representan a los enlaces entre los registros. su representación gráfica se basa en el acomodo de los campos de un registro en un conjunto de celdas que se ligan con otro(s) registro(s) Las estructuras de datos según la cardinalidad se representan en los siguientes casos: Conceptos básicos. Algoritmo.- Es un conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas. Algoritmo.- Es una secuencia finita de instrucciones, cada una de las cuales tiene un significado preciso y puede ejecutarse con una cantidad finita de esfuerzo en un tiempo finito. Ha de tener las siguientes características: Legible, correcto, modular, eficiente, estructurado, no ambiguo y a ser posible se ha de desarrollar en el menor tiempo posible. Características de un algoritmo de computador: Correcto Legible eficiente Diseño de algoritmos. Fases: Diseño: se dan las especificaciones en lenguaje natural y se crea un primer modelo matemático apropiado. La solución en esta etapa es un algoritmo expresado de manera muy informal. Implementación: El programador convierte el algoritmo en código, siguiendo alguna de estas 3 metodologías. * TOP-DOWN se alcanza el programa sustituyendo las palabras del palabras del pseudocódigo por secuencias de proposiciones cada vez mas detalladas, en un llamado refinamiento progresivo. * BOTTON-UP parte de las herramientas mas primitivas hasta que se llega al programa. Pruebas: Es un material que se pasa al programa para detectar posibles errores.Esto no quiere decir que el diseño no tenga errores, puede tenerlos para otros datos. 2. Recursividad Definición.

Encadenamiento directo y zona de overflow. Algo muy importante a tener en cuenta cuando usemos la recursividad es que es necesario asegurarnos que llega un momento en que no hacemos más llamadas recursivas.Es poco eficiente cuando se han producido colisiones. Esta realización considera la tabla como un vector en el que cada posición contiene un elemento y un campo adicional con el comienzo de la lista de elementos con los que existe colisión. Ventajas: eficientes y rápidos. Indirecta: Cuando se definen una serie de subprogramas usándose unos a otros. Almacenamiento externo Usamos espacios fuera de las de la tabla para colocar las colisiones. Estructura Representación Una tabla es una estructura homogénea en la que todos los elementos que la componen son del mismo tipo. dado que para permitir su uso es necesario transformar el programa recursivo en otro iterativo.Por ello las tablas son estructuras de acceso directo o acceso por índice. En cambio la parte no recursiva puede coincidir con la condición de terminación. Si no se cumple esta condición el programa no parará nunca. no crecen ni decrecen en tiempo de ejecución y tienen un límite preestablecido antes de la compilación. tanto en el ámbito informático como en el ámbito matemático. Características. las posibles colisiones se resuelven construyendo una lista de elementos cuya imagen hash coincida. Almacenamiento interno Cuando el espacio usado para almacenar las colisiones esta dentro de los límites de la tabla. cuando definimos algo (un tipo de objetos. Se reserva espacio en cierta zona de externa a la propia tabla. INTEGER. Podemos distinguir dos tipos de recursividad: Directa: Cuando un subprograma se llama a si mismo una o mas veces directamente. sencilla y elegante. BOOLEAN). La recursividad en programación es una herramienta sencilla. Tipos. una propiedad o una operación) en función de sí mismo. Búsqueda secuencial. Inconvenientes: Para cada elemento de la lista se debe reserVAR un espacio para punteros lo que significa un desaprovechamiento de memoria en el "manejo de lista". Dentro del almacenamiento externo hay varios tipos. El principal inconveniente es la ineficiencia tanto en tiempo como en memoria.El algoritmo de búsqueda y de inserción es mas sencillo. subrango. otra iterativa o no recursiva y una condición de terminación. y facilidad para comprobar y convencerse de que la solución del problema es correcta. Ventajas e inconvenientes.Es decir. Búsqueda secuencial con centinela. Un algoritmo recursivo consta de una parte recursiva.Cada sinónimo se almacena en la primera celda disponible de la zona de overflow. de aproximadamente el 10% de su tamaño. muy útil y potente. favoreciendo la resolución de problemas de manera natural. La principal ventaja es la simplicidad de comprensión y su gran potencia. Encadenamiento directo. Inconveniente: Desaprovechamiento de memoria (poco). . La parte recursiva y la condición de terminación siempre existen.Son estáticas. Zona de Overflow. Ventajas: Ocupa menos memoria que el anterior.Dentro del almacenamiento interno están:Encadenamiento directo y encadenamiento vacío. Para acceder a los elementos de una tabla se utilizan los "índices" y estos pueden ser de cualquier tipo escalar de PASCAL (enumerados. que utiliza bucles y pilas para almacenar las variables.Hablamos de recursividad. CHAR. para introducir las colisiones. ya que la búsqueda en la zona de overflow es secuencial.

dos listas pueden ser diferentes si: No tienen el mismo número de elementos: L1: gato. que estará dentro de la tabla. que va a estar formada por una secuencia de elementos. se dividen en densas y enlazadas. La localización de un elemento cualquiera será: Un elemento de la lista tendrá la dirección K si K es el primero y K es conocido (dirección de inicio). gato. L1: gato. Ventajas: Más rápido que el externo con zona de overflow ya que evita la búsqueda secuencial. perro. canario. Ocupación de memoria: Depende del método usado. Inconvenientes: Espacio reservado en cada elemento para el enlace. La localización de un elemento cualquiera será: El primero si es el primer elemento de la lista. Dinámica: Puede crecer o decrecer en tiempo de ejecución según nuestras necesidades. L2: gato. Cuando. L2: perro. y el segundo es más rápido. perro. N-esimo si para llegar a el hemos pasado por N-1 elementos. Una lista es una estructura de datos homogénea y dinámica. Se usa dentro de la tabla un campo de tipo puntero para que apunte al siguiente colisionado. ARRAYS y punteros. En el encadenamiento directo con zona de overflow podemos sobredimensionar la tabla para almacenar las colisiones. estos son distintos: L1: gato. Atendiendo a este. Siguen una estructura física secuencial luego se pueden implementar utilizando ficheros. Listas calificadas . en esta zona las casillas estarán encadenadas con una variable que apunte al primer espacio libre de la zona de overflow. Lista Concepto. J si J está contenida en el elemento anterior. Sabemos cuales es el siguiente elemento porque para acceder a él hemos tenido que pasar por todos los anteriores. donde cada uno de ellos va seguido de otro o de ninguno. 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 posición relativa dentro de la lista. cerdo. Listas densas Se caracterizan porque los elementos siguen una secuencia física. Hay varios criterios para clasificar las listas: según su modo de acceso o según su información de acceso. El modo de acceso es independiente de la implementación realizada. Cuando. no están dispuestos en el mismo orden. L2: gato. Listas enlazadas Son aquellas en las que cada elemento que los compone contiene la información necesaria para acceder al elemento siguiente. aun teniendo el mismo número de elementos y siendo estos los mismos. Homogénea: Todos los elementos que la forman tienen el mismo tipo base. Informacion de acceso.El primer caso ocupa menos memoria.Consiste en enlazar todos los elementos cuyas claves generan igual indice primario por medio de enlaces dentro de la tabla a las nuevas posiciones ocupadas por estos elementos.En ese campo se guarda la dirección del siguiente colisionado. 3.Encadenamiento directo. cerdo. Modo De Acceso. Estará en la dir. aun teniendo el mismo número de elementos. perro.

se utilizará la palabra árbol para referirse a árbol binario. Sobre una estructura de tipo pila. surgen de forma natural las operaciones que permiten añadir elementos y quitar elementos. Si se considera la tarea como un proceso secuencial.. Ejemplo: ... Postorden: Subarbol izquierdo. orden central y postorden. que no quepa ningún elemento más. del recorrido del árbol.Los elementos se clasifican por una clave y pueden estar ordenados o no estarlo. según un cierto orden subyacente. Preorden: Raiz.15 Recorrido en profundidad. entonces los nodos individuales se visitan en un orden específico. Esto se producirá cuando el índice que señala la cima de la pila sea igual al tamaño del vector. en el último ejemplo sería: 12 . Pilas. y menor que todas las claves del subárbol derecho se dice que este árbol es un árbol binario de búsqueda.Esta operación se considera entonces como un parámetro de una taré más general que es la visita de todos los nodos o. Árboles binarios.Los árboles binarios se utilizan frecuentemente para representar conjuntos de datos cuyos elementos se identifican por una clave única.Es aquel recorrido que recorre el árbol por niveles. uno de los cuales apunta al elemento siguiente y otro al anterior.Cada elemento tiene dos punteros. subárbol izquierdo y subárbol derecho. Un índice marcará la posición del último elemento que se ha añadido a la pila. Esto exigirá que la manipulación sobre un elemento. Los árboles de grado 2 tienen una especial importancia. Hay tres formas: Preorden. llamados subárbol izquierdo y derecho de la raíz. como se denomina usualmente. Se define un árbol binario como un conjunto finito de elementos (nodos) que bien está vació o está formado por una raíz con dos árboles binarios disjuntos.Una tarea muy común a realizar con un árbol es ejecutar una determinada operación con cada uno de los elementos del árbol.Recorre el árbol por subárboles. Recorrido en amplitud.. las inserciones en la estructura se realizarán en la posición inmediatamente siguiente a la posición marcada como cima. Otros Tipos De Listas Listas reorganizables. Listas doblemente enlazadas. Árbol binario de búsqueda. Una pila es una lista ordinal en la que el modo de acceso a sus elementos es del tipo LIFO.En ellas el último elemento apunta al primero. es decir. y pueden considerarse como organizados según una estructura lineal. se simplifica considerablemente la descripción de muchos algoritmos si puede hablarse del proceso del siguiente elemento en el árbol. Si el árbol está organizado de tal manera que la clave de cada nodo es mayor que todas las claves su subárbol izquierdo.8. Los añadidos y extracciones de elementos de una estructura se realizan solo por un extremo.. necesite que el mismo ocupe la posición de cima. Implementación utilizando tablas Esta realización consiste en ir guardando consecutivamente los elementos de la pila en un vector de tamaño fijo. por lo tanto.5. subarbol derecho. Hay dos formas básicas de recorrer un árbol: El recorrido en amplitud y el recorrido en profundidad. raiz. Se les conoce con el nombre de árboles binarios. Ejemplo: Operaciones básicas. Orden central: Subarbol izquierdo. subarbol derecho. pasando a ser esta nueva posición ocupada la nueva cima de la pila.Son aquellas listas en las que el último elemento consultado se sitúa al principio. puede conducir a la situación en que la pila esté llena. mientras que en la segunda depende de la clave..9. Por tanto. Listas circulares. En los apartados que siguen se considerarán únicamente árboles binarios y.17 .. De hecho. Diferencias: En la primera clase importa en orden de llegada. Listas circulares doblemente enlazadas 4. luego el único elemento accesible de la pila es el que se encuentre en la cima. Los árboles de grado superior a 2 reciben el nombre de árboles multicamino. raiz. El hecho de utilizar un vector para almacenar los elementos. A un elemento se accede por la información contenida en un campo clave.

cuando usamos una variable local en un procedimiento VB crea un espacio de memoria para mantener el valor de esta variable . 3.5 .94065645841247D-324 a 1.401298E-45 1.402823E38 -1. (usa Global dentro de la sección de Declaraciones Generales de un módulo). 2.5807 0 a 65.13 .5808 a 922337203685477.47 Orden central: 2 . Agrega el siguiente código a un botón de comando y observa que valores son impresos: . Global .15 . esto sucede cuando lee el estatuto Dim.7 .30 .12 . se le puede asignar un valor.147. Módulo .79769313486232D308 a -4. En el primer ejemplo de abajo a una variable se le asigna un valor constante.7 . Hay tres tipos de alcance en una variable: 1.147.95 Ejemplo 2: precio_total = precio * 10 El Alcance de una variable es definido como su rango de operación. Hay dos tipos de información que puede ser almacenada: Números y texto.40 .Pueden ser accesados desde cualquier procedimiento y desde cualquier forma.483.13 .401298E-45 a 3.12 .La variables pueden ser accesadas desde cualquier procedieminento de la forma actual (use Dim dentro de la sección de Declaraciones Generales de la forma).30 .20 .94065645841247D-324 4. deberá primero ser definida: Dim nombre_de_variable As Tipo Ejemplo: Dim precio As Long Dim nombre_de_articulo As String Tipo Integer Long Single Double Currency String Variant Rango permitido -32.La variable solo puede ser usada en el procedimiento actual ( use Dim dentro del procedimiento requerido).402823E38 a -1.47 Postorden: 2 . Variables Estáticas El declarar variables y arreglos como local en un procedimieneto/función es muy usado. pero cuando llega al final del procedimiento (End Sub) VB libera el espacio asigndo para el valor de la variable local. Local .79769313486232D308 -922337203685477. Para esto se usa el operador ' = '.20 Ejemplo: Preorden: / + a b * c d Notación polaca Orden central: a + b / c * d Notación infija Postorden: a b + c d * / Notación polaca inversa Estructura de datos Variables Las variables son estructura de datos usados para almacenar información.Preorden: 20 .2 .000 bytes Valores de fechas: 1/1/0000 a 12/32/9999 Numérico: igual que Double Texto: Igual que String Si una nueva variable es declarada sin especificación VB por default la deberá tomar como tipo Variant Una vez que una variable se ha creado.647 -3.35 .13 . Ejemplo 1: precio = 29. Antes de usar una variable ésta.5 .40 . Sin embargo.15 .35 .30 .40 .768 a 32.767 -2.648 a 2. porque esto minimíza los efectos extraños que pueden ocurrir cuando se usan variables globales.5 .483.12 . mientras que en el segundo se le asigna el contenido de una variable multiplicada por 10.15 .35 .7 .47 .

podemos ver una lista de números que se incrementan en uno cada vez que se le da clic al botón de comando.usa 'Const' dentro del procedimiento requerido. El contenido de una varible puede cambiar tantas veces sea necesario. Par ello podemos usar una variable llamada IMP. las constantes de módulo solo son accesadas por la foma que los contiene. deberá hacer referencia a un valor en varias partes del programa. Por ejemplo.95 Print "Total = ". Esta tiene exactamente el mismo nombre en el programa pero es una variable completamente diferente. En el siguiente ejemplo definimos una contante llamada ' IMP ' y le asignamos el valor de 1. Variables Constantes Las constantes son similares a una variable pero tienen un valor determinado que se mantiene igual en toda la ejecución del programa. Agrega a la forma un nuevo botón de comando. Por ejemplo. 2. también puede mantenerse mientras el programa se ejecute. el cual deberá tener un nuevo procedimiento 'Click'. El valor nunca será arriba de uno a pesar de que el valor de la variable se incrementa en uno cada vez. Note que en lugar de escribir 1. Todo el arreglo tiene un nombre. necesitaremos 200 variables diferentes. Global . pago_total * IMP Como las variables las constantes también tiene reglas de alcance. Local . si cualquier procedimiento trata de accesar esta variable no prodrá lograrlo.usa 'Global Const' dentro de la sección deDeclaraciones Generales de un módulo (ésto es Module1.Sub Command1_Click () Dim numero As Integer ' Crea una variable Local normal numero = numero + 1 Print numero End Sub Después de dar clic varias veces al botón de comando deberás ver una columna de unos en el lado izquierdo de la forma. Arreglos (arrays) La variables son muy usadas para lamacenar pequeñas cantidades de información. y las contantes locales son accesadas solamente por el objeto actual o procedimiento/función.usa 'Const' dentro de la sección deDeclaraciones Generales de una forma o módulo.bas). para almacenar los salarios de doscientos empleados.175. ¿Porque usar una constante si no puede cambiar de valor?. VB esta trabajan con una variable diferente. Nota: La nueva variable estática es una variable de alcance local. Una mejor forma de almacenar esta información será usra una estructura de datos llamada arreglos array.175 en la fórmula nos referimos a el nombre de la constante. Para que esto no suceda así. Módulo . y trata de corregir o imprimir el valor de la variable estática que contiene el primer botón. Ese es usado en estatuto Print con la variable pago_total para calcular la cantidad total a pagar. que mantendrá el valor en el evento Form_Load. Hay constantes globales que pueden ser accesadas por cualquier módulo o cualquier forma del proyecto. De esta manera. Para el problema de los salarios planteado arriba. 1. Para hacer esto agrega el estatuto 'Static' en lugar de 'Dim' como lo hicimos en el ejemplo de arriba. Static salarios(199) As Long 5. un arreglo el cual tiene 200 . Un arreglo es similar a las celdas en un panal de abejas. con este cambio (static) su valor permanecerá hasta que todo el programa termine. introduce Staticen el lugar de Dim: Sub Command1_Click () Static numero As Integer ' Crea una variable estática local numero = numero + 1 Print numero End Sub Ahora en vez de que el valor de la variable se pierda cuando el procedimiento termina. que puede ser el por ciento de impuesto mensual con respecto a las ganancias. El contenido de un arreglo local. Ejemplo: Const IMP = 1. Esto es porque cada vez que el procediemineto es llamado. 3. en un programa para calcular los impuestos de todo el año. haciendo clic en el botón. Hacemos esto cuando deseamos usar un mismo número o una palabra (string) varias veces. pero no son convenientes para grandes cantidades de información muy similar. y cada celda tiene una dirección.175 ' Declara y asigna un valor a la constante Dim pago_total As Currency ' Declara una variable local para almacenar el total a pagar pago_total = 560.

pedimos el 149). pero marcaremos también el tamaño de esta variable .Caption = salarios(188) Nota: En los dos ejemplos anteriores. Trabajo enviado por: Ist Cepea Lima – Perú Bermúdez Moncada. Isabel Chumpitaz Heirisman. Roel germany0116@yahoo. Sin embargo VB pude ser forzado a empezar con 1.elementos (celdas) . Enrique . si deseamos saber cula es el salario del empleado número 189.000 pesos mensuales. Si sabemos que el nombre 'Jaime ' es el empleado número 24 y tiene un salario de 25. agregando el estatuto 'Option Base 1' en la sección de declaraciones generales de la forma o el módulo. esto es VB empieza un arreglo de 0. Dim nombre_del_arreglo (tamaño) [As Tipo] Ejemplo: Dim salarios(199) As Long En el ejemplo de arriba creamos un arreglo con 200 elementos. podemos usar: lblvalor. usaremos el comando Dim para cerar un nueva variable. no de 1. El tamaño marcado es de 199 porque por default VB empieza la numeración con 0.es Guevara Retamozo Miguel Salazar Beaumont Blanco. podemos lintroducir esta cantidad en el arreglo de la siguiente forma: salarios(23) = 25000 Contrario a lo anterior. para accesar un elemento es necesario colocar el número del elemento anterior (si deseamos el 150.