You are on page 1of 14

Curso: Estructura de la Informacin

Ing. Marco Antonio Pineda Alvarado

1
1.1 1.2 1.2.1 DATOS

Formas de comunicacin, Datos e Informacin


Registro de datos: Los datos estructurados que se asocian a determinado objeto o evento, formulados como un mensaje escrito. Ej. Registro de datos de un objeto Persona Persona:
Cdigo 1 Nombre Juan Edad 16 1, Juan , Dni 41337010 16, 41337010#

Formas de los datos Formas lingsticas naturales

Palabra (lgica). Representacin grafica de una palabra, donde una palabra es una secuencia de sonidos con significado lexico. Expresin de oraciones. Palabra o conjunto de palabras con que se expresa un sentido gramatical completo. Que cumple las reglas de una lengua. Mensaje escrito: Seleccin ordenada de los caracteres del lenguaje tomados de un conjunto establecido de caracteres organizados de modo que comuniquen algo al receptor. Texto. Trozo o pasaje citado de un obra o documento. Documento: Comprende un conjunto ordenado de imgenes visuales y se construye de modo que comunique una idea completa. Puede basarse en el textos o en otra forma lingstica. 1.2.2 Formas lingsticas con valor computacional

Persona:
Cdigo, nombre, edad, dni #

Separador de registros Archivo de datos: Configuracin de registros de datos asociados a los miembros de determinada clase de objetos y eventos observados. Base de datos: Conjunto de archivos o datos que en conjunto que representan algn aspecto o situacin del mundo. 1.3 INFORMACIN

Dato: Un enunciado dado o tomado como verdadero que describe alguna caracterstica de un objeto. Ej. Enunciado de dato x, y coordenadas de un punto en un plano. edad numero de aos de vida de una persona Elemento dato: valor o trmino que representa un predicado incluido dentro de un dato. Por ejemplo, la identificacin de una propiedad, la unidad de medida o la unidad de tiempo. Ej. Valor de un dato. x = 3, y = 7 edad = 16 Dato estructurado: Una representacin de un dato, compuesta de la unin de elementos dato, que identifica y describe un solo objeto o evento observado. Ej. Dato estructurado tipo registro de una persona Persona.dni = 41337010 Persona.nombre = Juan Persona.edad = 16 Lista.indice = 1 Lista.elemento = Juan Lista.siguiente = 2

La informacin no es solo un conjunto de datos cualquiera. Es ms bien una coleccin de hechos significativos y pertinentes convenientemente ordenados y relacionados que poseen un valor significativo para algn fin especfico, para el organismo u organizacin que los percibe. La definicin de informacin es la siguiente: Informacin es un conjunto de datos significativos y pertinentes que describan sucesos o entidades. Datos Significativos. Para ser significativos, los datos deben constar de smbolos reconocibles, estar completos y expresar una idea no ambigua. Los smbolos de los datos son reconocibles cuando pueden ser correctamente interpretados. Es completo o integro cuando todos los datos requeridos para responder a una pregunta especfica estn disponibles. Ej. Un marcador de Ftbol debe incluir el tanteo de ambos equipos. Si se oye el tanteo Alianza 2 y no oyes el del oponente, el anuncio ser incompleto y sin sentido. Los datos son inequvocos cuando el contexto es claro o se tiene un objetivo especfico. Ej. El grupo de signos 2-x puede parecer la cantidad 2 menos la cantidad desconocida llamada x para un estudiante de lgebra, pero puede significar 2 barra x a un vaquero que marca ganado.

-1-

Curso: Estructura de la Informacin 1.3.1 Atributos de la informacin

Ing. Marco Antonio Pineda Alvarado

2
2.1

Representacin de datos por ordenador


microprocesadores, y stos slo estn capacitados para manejar los valores binarios como unos y ceros. En efecto, para el computador todo lo que ves en estos momentos en la pantalla se maneja con unos o ceros. Esto es porque la computadora maneja un sistema binario, que se llama as porque slo acepta dos valores (0 y 1) para representar los datos. Tal sencillez tiene su razn de ser: los microprocesadores son circuitos electrnicos plasmados en un material llamado silicio (algo parecido al vidrio) que procesan diminutos impulsos elctricos, el ms pequeo de los cuales es conocido por el nombre de bit. Como impulso elctrico, el microprocesador slo puede detectar cuando un bit tiene carga elctrica (su valor sera, en este caso, 1) o cuando no la tienen 1 (su valor sera 0). En este ejemplo manejamos los valores unos y ceros de manera un tanto arbitraria, ya que la presencia o ausencia de carga elctrica en un bit puede ser interpretada como una gran diversidad de valores: cierto y falso, hombre o mujer, T o F, etc. La eficacia de las computadoras no se basa en la complejidad de su fundamento lgico, que como vimos se reduce a manejar dos posibles valores, sino de la velocidad con la que se aplica dicha lgica: los microprocesadores actuales pueden procesar varios millones de bits en un slo segundo.

DEFINICIN DE BIT, BYTE, CARCTER Y PALABRA

Bit: es una sntesis de dos trminos en ingls: Binary digit, que en espaol significan dgito binario, o lo que es lo mismo, nmero (dgito) con dos posibles valores (binario 0 1). El trmino surge de usar las dos primeras letras de BInary con la ltima de digiT.: bit. Es la unidad de informacin ms sencilla posible en el sistema binario conocida por un ordenador. Byte: Unidad de informacin que consta de 8 bits equivalente a un nico caracter, como una letra, nmero o signo de puntuacin (Ej. a = 01100001). Caracter: Es un elemento tomado de un conjunto de smbolos. Un ejemplo de un conjunto de smbolos es {0,1,2,3,4,5,6,7,8,9,A,B,C....Y,z,,-,+,*} en el cual se incluyen dgitos, los caracteres del alfabeto y algunos caracteres especiales. Un compilador de lenguaje reconoce un conjunto particular de caracteres. Palabra: Conjunto de bits que, como unidad elemental, puede manipular una computadora. La longitud en bits de una palabra en una computadora puede ser de 8, 16, 32, 64, etc. bits, y depende del microprocesador de su unidad central de proceso. 2.2 MANEJO Y OPERACIONES DE BITS

Ahora el ser humano digitaliza su entorno. Pero, qu significa digitalizar? Digitalizar es traducir informacin como textos, imgenes, sonido o video, a un formato que puedan entender los computadores o -2-

La expresin empleada no tiene carga elctrica es figurativa, puesto que si existe carga elctrica cuyo valor es muy pequeo.

Curso: Estructura de la Informacin Un bit puede representar solamente dos valores. Dos bits, cuatro posibles valores y ocho bits 256 posibles valores que es lo mismo que decir posibles combinaciones de unos y ceros. Ej. Combinaciones posibles usando una cantidad de bits. 1 bit = {0,1} 2 bits = {00, 01, 10, 11} 3 bits = {000,001, 010, 011, 100, 101, 110, 111} El nmero de combinaciones se halla empleando la siguiente formula: C = (V) N Donde: V, son los posibles valores del elemento. N, es el nuecero de elementos utilizados C = 21 = 1 C = 22 = 4 C = 23 = 8 C = 2 8 = 256 con 1 bit con 2 bits con 3 bits con 8 bits

Ing. Marco Antonio Pineda Alvarado Se dice que algunas computadoras tienen aritmtica decimal en lugar de binaria. Cuatro bits proporcionan 16 combinaciones, utilizadas para los 10 dgitos de 0 a 9, con 6 combinaciones sin utilizar. El nmero 1944 se muestra abajo codificado en decimal y en binario, utilizando 16 bits en cada ejemplo: Ej. Sistema de Codificacin Decimal y Binaria de un numero. Decimal: Binario: 0001 1001 0100 0100 0000011110011000

Sistema Decimal de nmeros: 0001-1001-0100-0100 1 9 4 4 Sistema Binario de nmeros


1024 512 256 128 64 32 16 8 4 2 0 1 1 0 0 1 1 0 1 0 0

Una unidad de medida muy utilizada en la informtica es el byte, que consiste en la agrupacin de ocho (8) bits. Usando grupos de 8 bits (es decir, bytes) es posible representar a todos los caracteres que conforman el abecedario, incluyendo las maysculas y los signos especiales, como el de moneda o los acentos, de tal modo que cuando se oprime la "e" en el teclado, el microprocesador recibe un paquete de 8 bits con la siguiente combinacin de valores: Ej. Valor de la letra "e" minscula en bits: 0 1 1 0 0 1 0 1 Pero si en cambio se presiona la misma tecla en maysculas, el paquete de bits que se estar mandando al microprocesador sera el siguiente: Ej. Valor de la letra "E" mayscula en bits: 0 1 0 0 0 1 0 1 Mediante combinaciones de bits y bytes es posible representar una cantidad infinita de cosas: desde bibliotecas completas hasta juegos y pelculas, todo un universo de informacin que puede estar en diversas formas; textos, imgenes, sonidos y videos.

1 2 3 4 1944

0 0 0 0 1

0 0 0 0 1

0 0 0 0 1

0 0 0 0 1

0 0 0 0 0

0 0 0 0 0

0 0 0 0 1

0 0 0 0 1

0 0 0 1 0

1024 + 512 + 256 + 128 + 16 + 8 = 1994 Comparando los dos sistemas se puede ver que para representar el numero 1944 se requirieron 16 bits (sistema decimal) y 11 bits (sistema binario). Para nuestra vista resulto as, pero para los computadores la longitud de palabra es fija (de 8, 16, 32 64 bits) Actividad: Represente su nombre y apellido en el sistema binario, sabiendo que cada letra empleada requerir de un byte de informacin. Represente su edad en el sistema binario, sabiendo que un nmero entero se representa en 16 bits de informacin. Represente su fecha de cumpleaos en el sistema binario, sabiendo que el 01/01/2009 tiene una equivalencia numrica a 39814.

-3-

Curso: Estructura de la Informacin

Ing. Marco Antonio Pineda Alvarado

Las Estructuras de datos elementales


3.2 ESTRUCTURAS PRIMITIVAS

Una estructura de datos es una clase de datos que se puede caracterizar por su organizacin y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos. 3.1 CLASIFICACIN DE ESTRUCTURAS DE DATOS

PRIMITIVAS Enteros Una estructura de datos primitiva son los enteros. Un entero es un miembro del siguiente conjunto de nmeros: {..., -(n+1), -n, ..., -2 ,-1 ,0 ,1 ,2, ..., n, n+1, ...} Las operaciones fundamentales sobre enteros son: suma, resta, multiplicacin, divisin, exponenciacin y otras. Todas estas operaciones trabajan sobre un par de nmeros considerados como operadores binarios. Booleanos (lgicos) Tambin llamado lgico. Es un elemento que puede tener uno de dos valores: verdadero o falso. Los tres operadores booleanos bsicos son not, and, y or (negacin, conjuncin, y disyuncin). Es son comnmente empleados para efectuar comparaciones. Caracter Es un elemento tomado de un conjunto de smbolos. Un ejemplo de un conjunto de smbolos es {0,1,2,3,4,5,6,7,8,9,A,B,C,..,Y,Z,a,b,c,..,y,z,,-,+,*} en el cual se incluyen dgitos, los caracteres del alfabeto y algunos caracteres especiales. Algunas operaciones que pueden realizase sobre cadenas de texto son: concatenacin o unin, Extraccin o subcadena, insercin, longitud, repeticin. Ej. Operaciones de Cadena Texto Inicial: Juan estudia mucho en la universidad Extraer: la palabra desde la posicin 14 hasta la 18 Insertar: en la posicin 14 la palabra y trabaja Longitud: mida la longitud de la frase Repetir: la palabra urra! , al final de la frase 3.3 TIPOS DE DATOS

Estructuras Lgicas de Datos Las estructuras de datos son muy importantes en sistemas computacionales. En un programa, cada variable pertenece a alguna estructura de datos explcita o implcitamente definida, la cual determina el conjunto de operaciones validas para ella. Las estructuras de datos que se discuten aqu son estructuras de datos lgicas. Cada estructura de datos lgica puede tener varias representaciones fsicas diferentes para sus almacenamientos posibles. Estructuras Primitivas y Simples Son primitivas aquellas que no estn compuestas por otras estructuras de datos por ejemplo, enteros, booleanos y caracteres. Otras estructuras de datos se pueden construir de una o mas primitivas. Las estructuras de datos simples que consideramos se construyen a partir de estructuras primitivas y son: cadenas, arreglos y registros. A estas estructuras de datos las respaldan muchos lenguajes de programacin. Estructuras Lineales y No Lineales Las estructuras de datos simples se pueden combinar de varias maneras para formar estructuras ms complejas. Las dos clases principales de estructuras de datos son las lineales y las no lineales, dependiendo de la complejidad de las relaciones lgicas que representan. Las estructuras de datos lineales incluyen pilas, colas y listas enlazadas lineales. Las estructuras de datos no lineales incluyen grafos y rboles. Archivos Las tcnicas de estructuracin de datos aplicadas a conjuntos de datos que los sistemas operativos manejan como cajas negras comnmente se llaman Organizacin de Archivos. Un archivo tiene nombre, contenido, direccin donde se guarda y alguna informacin administrativa, por ejemplo, quin la elabor y cun grande es. Las cuatro clases bsicas de organizacin de archivos son secuencial, relativo, secuencial indexado, y multillave.

El primer objetivo de toda computadora es el manejo de la informacin o datos. Un dato es la expresin general que describe los objetos con los cuales opera una computadora. La mayora de las computadoras pueden trabajar con varios tipos de datos. Los algoritmos y los programas correspondientes operan sobre datos. Existen dos clases de tipos de datos: Simples y Compuestos. Los tipos de datos simples son los siguientes: -4Numricos (Integer, Real)

Curso: Estructura de la Informacin Lgicos (Boolean) Carcter (Char, String)

Ing. Marco Antonio Pineda Alvarado por una comilla o dobles comillas, segn el tipo de lenguaje de programacin. 3.4 Presentacin de los datos

Datos Numricos El tipo numrico es el conjunto de valores numricos. Estos pueden representarse en dos formas distintas: Tipo Numrico Entero (Integer) Tipo Numrico Real (Real, Double, Float)

Nmeros enteros El mtodo ms ampliamente utilizado para la interpretacin de la asignacin de bits como enteros no negativos es el sistema de nmeros binarios. En este sistema cada posicin del bit representa una potencia de 2. El bit que est en la posicin ms hacia la derecha representa 20,, lo cual es igual a 1; el de la siguiente posicin a la izquierda representa 2 1, el cual es 2; el bit de la posicin siguiente representa 22, el cual es 4; y as sucesivamente. Un entero es representado como una suma de potencias de 2. una hilera de puros ceros representa el numero cero. Si un 1 aparece en alguna posicin de un bit en particular, la potencia de 2 representada por la posicin de este bit es incluida en la suma, pero si aparece un cero la potencia de 2 no es incluida en la suma. Por ejemplo, el grupo de bits 00100110 tiene unos en la posicin 1,2 y 5 (contados de derecha a izquierda con la posicin ms hacia la derecha interpretada como la posicin cero). Existen dos mtodos ampliamente utilizados para representar nmeros binarios negativos. En el primer mtodo, denominado de complemento unitario un nmero negativo es representado cambiando cada bit de su valor absoluto a la posicin opuesta correspondiente. Por ejemplo, puesto que 00100110 representa el nmero 38, 11011001 es utilizado para representar a 38. Una hilera de bits que empiece con un 0 representa un nmero positivo, mientras que una hilera de bits que empiece con 1 representa un nmero negativo. El segundo mtodo de representar nmeros binarios negativos es denominado mtodo del complemento doble. En esta notacin, se le agrega un 1 a la representacin e complemento unitario de un nmero negativo. Por ejemplo, puesto que 11011001 representa 38 en la notacin de complemento unitario 11011010 es utilizado para representar 38 e la notacin de complemento doble. El sistema de nmeros binarios de ninguna manera es el mtodo mediante el cual se pueden utilizar bits para representar enteros. Por ejemplo, una hilera de bits puede ser utilizada para representar enteros en el sistema de nmeros decimales, en la siguiente forma: 4 bits se pueden utilizar para representar un dgito decimal entre 0 y 9 en la notacin binaria descrita anteriormente. Una hilera de bits de longitudes arbitrarias puede ser dividida en grupos consecutivos de 4 bits, donde cada grupo representa un dgito decimal. La hilera entonces representa el nmero que est formado por estos dgitos decimales en una notacin decimal convencional. Por ejemplo, en este sistema, la hilera de bits 00100110 se -5-

Enteros: Es un subconjunto finito de los nmeros enteros. Los enteros son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser positivos y negativos, por ejemplo, 5, 6, -15, -1340. Los nmeros enteros mximos y mnimos de una computadora de 16 bits suelen ser 32768 a +32767. Los nmeros enteros fuera de este rango no se suelen representar como enteros, sino como reales, aun que existen excepciones (como en lenguajes de programacin FORTRAN, Quick/Qbasic, C, C++, etc.). Algunas excepciones tambin las manejan los lenguajes de programacin, como por ejemplo el uso de tipos de datos entero corto (Short), entero medio (Small), entero largo (Integer). Reales: Consiste en un subconjunto de los nmeros reales. Lo nmeros reales siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real consta de un entero y una parte decimal, por ejemplo, 0.08, 3789.25, -8.12, 3.0 Datos Lgicos (Booleanos) Es aquel dato que slo puede tomar uno de dos valores: cierto o verdadero (true) y falso (false). Este tipo de datos se utiliza para representar las alternativas (s/no) a determinadas condiciones. Datos Tipo Carcter y Tipo Cadena El tipo carcter el conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato tipo carcter contiene slo un carcter. Los caracteres que reconocen las diferentes computadoras no son estndar; sin embargo, la mayora reconoce los siguientes caracteres alfabticos y numricos: Caracteres Alfabticos (A, B, C, ...., X, Y, Z), (a, b, c, ..., x, y, z) Caracteres Numricos (1, 2, 3, ..., 9, 0). Caracteres especiales (+, -, *, /, `, <, >, , $, &, ).

Una cadena (string) de caracteres es una sucesin de caracteres que se encuentran delimitados

Curso: Estructura de la Informacin puede separar en 2 hileras de 4 bits cada uno: 0010 y 0110.el primero de estos grupos representa el dgito decimal 2 y el segundo representa el dgito decimal 6, de tal manera que la hilera completa representa el entero 26. esta representacin es llamada decimal codificado en binario. Nmeros reales El mtodo comn y corriente utilizado por los computadores para representar nmeros reales es la denotacin de punto flotante. Existen muchas variedades de notacin de punto flotante y cada una de ellas tiene sus caractersticas individuales. El concepto clave es de que un nmero real es representado por un nmero denominado mantisa multiplicada por una base elevada a una potencia entera, denominada exponente. La base generalmente es fija y la mantisa y el exponente varan de acuerdo a la representacin de diferentes nmeros reales. En la notacin de punto flotante un nmero real est representado por una hilera de 32 bits formada por una mantisa de 24 bits seguida de un exponente de

Ing. Marco Antonio Pineda Alvarado 8 bits. La base se fija como 10. tanto la mantisa como el exponente son enteros binarios de complemento doble. Algunos nmeros reales y representaciones de puntos flotantes son: 0 0.5 -387. 53 00000000000000000000000000000000 00000000000000000000010111111111 11111111011010001001111111111110

La ventaja de la notacin de punto flotante es que esta puede ser utilizada para representar nmeros con valores absolutos extremadamente grandes o extremadamente pequeos. El nmero positivo ms pequeo que puede ser representado es 10-128 el cual es verdaderamente pequeo. No necesariamente cada nmero comprendido entre el mas grande y el ms pequeo puede ser representado. Nuestra representacin permite solamente 23 bits significativos. Es decir un nmero tal como 10 millones uno, el cual requiere 24 dgitos binarios significativos en la mantisa, tendra que ser aproximado a 10 millones (1 x 10 7 ), el cual requiere solamente un dgito significativo.

4
4.1 CONCEPTO DE ESTRUCTURA DE DATOS

Estructuras de datos
Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.

En programacin, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulacin. Un dato elemental es la mnima informacin que se tiene en un sistema. Una estructura de datos define la organizacin e interrelacin de un conjunto de datos elementales y de un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones bsicas son: Alta (agregar, insertar), adicionar un nuevo valor a la estructura. Baja (quitar, eliminar, remover), borrar un valor de la estructura. Bsqueda, encontrar un determinado valor en la estructura para realizar una operacin con este valor.

Cada estructura ofrece ventajas y desventajas en relacin a la simplicidad y eficiencia para la realizacin de cada operacin. De esta forma, la eleccin de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operacin sobre los datos. 4.2 Tipos de Estructuras de datos

Algunos tipos de estructuras de datos que encontraremos son: Estructuras lineales, -6Arreglos (vector o matriz, arreglo o array) Registro (estructura de datos) Tipo de datos algebraico Listas Enlazadas Pilas (stack) Colas (queue)

Otras operaciones que se pueden realizar son: Ordenamiento, de los pertenecientes a la estructura. elementos

Estructura de datos no lineales rboles Conjuntos (set)

Curso: Estructura de la Informacin 4.3 Grafos Tablas Hash Montculos (o heaps) ARREGLOS, VECTOR Y MATRIZ

Ing. Marco Antonio Pineda Alvarado elementos estuvieran ordenados y se va a utilizar acceso secuencial para agregar o leer datos sera ms adecuado utilizar una lista, ya que esta estructura puede cambiar de tamao fcilmente durante la ejecucin de un programa. Ej. Acceso elementos de un array
1 2 3 4 5 6 7 8

En programacin, un array es un conjunto o agrupacin de variables del mismo tipo cuyo acceso se realiza por ndices. Ej. Arreglo unidimensional con 10 elementos
ndice Celdas

5 3 0 8 1 9 4 2 Leer el dato del ndice 5 1 Leer el dato del ndice 8 2 Ej. Acceso elementos de un array con Nombre Array A[1..8]
A[ ] =

Los vectores o arreglos (array en ingls) de dos o ms dimensiones se denominan con frecuencia matrices, y pueden tener tantas dimensiones como se desee; aunque para evitar confusiones con el concepto matemtico de matriz numrica (que normalmente slo tiene dos dimensiones), se suele utilizar el termino array (o arreglo) para referirse de forma genrica a matrices de cualquier nmero de dimensiones. Ej. Arreglo bidimencional con 24 elementos
1 1 2 3 ndice de Columna 2 3 4 5 6 7 8 ndice de Fila

5 3 0 8 1 9 4 2

Leer el dato A[2] 3 Leer el dato A[6] 9 Escribir el dato 7 en A[4]


A[ ] =

5 3 0 7 1 9 4 2

Ej. Acceso elementos de un array ordenado Array A[1..8]


A[ ] =

Ej. Arreglo tridimencional con 32 elementos

0 1 3 5 7 8 9 10

Escribir el dato 6 en A[2]


A[ ] = 1 2 3 4 1 2 3 4 ndice de Fila 1 2 ndice de Profundidad

0 6 3 5 7 8 9 10

Escribir el dato 6 en A[2] 4.3.1 Insertar Insertar nuevo valor, para esto se debe verificar si existe alguna celda o espacio vaco. Recorremos el arreglo secuencialmente empezando del primer ndice hasta llegar al ltimo. Comprobamos si existe valor en la celda determinada Si no existe valor, agregamos el valor en el ndice determinado. Pasamos al siguiente ndice. Operaciones con Arreglos

ndice de Columna

Desde el punto de vista de un programa de ordenador, un array (matriz o vector) es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lgico un array se puede ver como un conjunto de elementos ordenados en filas y columnas (como una tabla compuesta por un grupo de celdas). Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice de forma aleatoria e impredecible. Por el contrario, si los

Ej. Insercin de nuevo elemento aun array


Existe valor? Existe valor? No Existe valor

-7-

Curso: Estructura de la Informacin

Ing. Marco Antonio Pineda Alvarado

A[ ] =

5 3 0 8
4

Reemplazar valor, para no es necesario la verificacin, solo basta con acceder al ndice del arreglo y escribir el valor. Eliminar Eliminar cualquier valor, para no es necesario la verificacin, solo basta con acceder al ndice del arreglo y escribir un valor nulo. Eliminar un valor especfico, para esto se debe verificar que el valor del ndice del arreglo coincida con el valor buscado. Recorremos el arreglo secuencialmente empezando del primer ndice hasta llegar al ltimo. Comprobamos si valor de ndice es igual a valor buscado Si es igual, escribimos el valor nulo en el ndice determinado. Pasamos al siguiente ndice.

Ej. Eliminacin de nuevo elemento a un array


Es igual? Es igual? Si es igual 5 6 7 8

A[ ] =

5 3 0 8 4 9
Nulo

Valor buscado = 4

Notacin Ejemplos vector[nd_1,nd_2...,nd_N] (Java, Lexico, etc.) vector[nd_1][nd_2]...[nd_N](C, C++, PHP, etc.) vector(nd_1,nd_2...,nd_N) (Basic) vector{nd_1,nd_2...,nd_N} (Perl) Implementacin de Arreglos en Visual Basic

-8-

Curso: Estructura de la Informacin 4.4 REGISTROS

Ing. Marco Antonio Pineda Alvarado Uso de la estructura de un Registro


'Uso del registro Persona 'Declaracin de una variable RegPersona Dim RegPersona as Persona 'Escritura sobre los campos del registro RegPersona.Dni = "41337010" RegPersona.Nombre = "Juan" RegPersona.Apellido = "Perez" RegPersona.Edad = "16" 'Lectura de valores de campo del registro Text1.text = RegPersona.Dni Text2.text = RegPersona.Nombre Text3.text = RegPersona.Apellido Text4.text = RegPersona.Edad

Concepto Un registro, en programacin, es un tipo de dato estructurado formado por la unin de varios elementos bajo una misma estructura. Estos elementos pueden ser, o bien datos elementales (entero, real, carcter,...), o bien otras estructuras de datos, donde a cada uno de esos elementos se le llama campo. Ej. Registro de Persona Persona.dni = 41337010 Persona.nombre = Juan Persona.edad = 16 Donde: Persona.dni = 41337010
Registro Campo Valor

Uso de la estructura de un arreglo de Registros


'Uso del registro Persona 'Declaracin de una variable RegPersona Dim RegPersona(4) as Persona 'Escritura sobre los campos del registro RegPersona(1).Dni = "41337010" RegPersona(1).Nombre = "Juan" RegPersona(1).Apellido = "Perez" RegPersona(1).Edad = "16" RegPersona(2).Dni = "43200080" RegPersona(2).Nombre = "Maria" RegPersona(2).Apellido = "Soto" RegPersona(2).Edad = "15" 'Lectura de valores de campo del registro List1.Additem RegPersona(1).Dni + _ RegPersona(1).Nombre + _ RegPersona(1).Apellido + _ RegPersona(1).Edad List1.Additem RegPersona(2).Dni + _ RegPersona(2).Nombre + _ RegPersona(2).Apellido + _ RegPersona(2).Edad

Un registro se diferencia de un vector, en que este ltimo representa una coleccin de datos del mismo tipo, es decir todos iguales, mientras que en un registro los elementos que lo componen, estn relacionados, pero no tienen porque ser del mismo tipo de datos, aunque en algn momento podran serlo. 4.4.1 Implementacin de un Registro en un lenguaje de programacin (Visual Basic)

Declarar el nuevo registro Ir al men Principal de VB y seleccionar el men Proyecto, la opcin Agregar modulo. En la ventana Agregar modulo, seleccionar la Ficha Nuevo, el elemento Modulo. Guardar los cambios del proyecto. Ir al explorador de Proyectos, expandir el componente Modulos, Seleccionar el nuevo modulo creado Modulo1, Presionar el botn derecho del Mouse y en el men contextual seleccionar la opcin Ver cdigo. En la ventana de codificacin, escribir lo siguiente:
'Definicin de registro Persona Type Persona Dni as String * 8 Nombre as String * 30 Apellido as String * 30 Edad as Integer End Type

4.4.2

Registro en una base de datos

El concepto de registro que se acaba de presentar es muy similar al concepto de registro en bases de datos, este segundo se refiere a una coleccin de datos relacionados que hacen referencia a una misma instancia de la entidad, y que se van a guardar en una fila de una tabla en la base de datos. Ej. Registro en una base de datos Tabla Persona:
Dni 41337010 43200080 Nombre Juan Maria Apellido Perez Soto Edad 16 15 Registro

En este ejemplo se define un nuevo tipo de dato Persona, mediante la instruccin Type (Tipo), como una estructura (registro) que contiene campos de diferentes tipos de datos (por ejemplo: Dni, de tipo cadena de caracteres y de longitud 8).

-9-

Curso: Estructura de la Informacin 4.5 LISTAS

Ing. Marco Antonio Pineda Alvarado siguiente, o apunta al valor NULL o a la lista vaca si es el ltimo nodo.

En Ciencias de la Computacin, una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior y/o siguiente. El principal beneficio de las listas enlazadas respecto a los array convencionales es que el orden de los elementos enlazados puede ser diferente al orden de almacenamiento en la memoria o el disco, permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento. 4.5.1 Concepto

Una lista doblemente enlazada contiene tres valores: el valor, el link al nodo siguiente, y el link al anterior 4.5.3 Listas enlazadas circulares En una lista enlazada circular, el primer y el ltimo nodo estn unidos juntos. Esto se puede hacer tanto para listas enlazadas simples como para las doblemente enlazadas. Para recorrer un lista enlazada circular podemos empezar por cualquier nodo y seguir la lista en cualquier direccin hasta que se regrese hasta el nodo original. Desde otro punto de vista, las listas enlazadas circulares pueden ser vistas como listas sin comienzo ni fin. Este tipo de listas es el ms usado para dirigir buffers para ingerir datos, y para visitar todos los nodos de una lista a partir de uno dado. Una lista enlazada circular que contiene tres valores enteros 4.5.4 Operaciones

Una lista enlazada es un tipo de dato auto-referenciado porque contienen un puntero o enlace hacia otro dato del mismo tipo. Las listas enlazadas permiten inserciones y eliminacin de nodos en cualquier punto de la lista en tiempo constante (suponiendo que dicho punto est previamente identificado o localizado), pero no permiten un acceso aleatorio. Existen diferentes tipos de listas enlazadas: Lista Enlazadas Simples, Listas Doblemente Enlazadas, Listas Enlazadas Circulares y Listas Enlazadas Doblemente Circulares. Las listas enlazadas 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. Pero tambin pueden ser simuladas en los dems lenguajes de programacin que soporte el manejo de arreglos o registros. 4.5.2 Tipos de Listas Listas simples enlazadas

Recorrido de una lista El recorrido en una lista enlazada es simple, empezamos por el primer nodo y pasamos al siguiente, de acuerdo al apuntador del primer nodo hasta que la lista llegue al final o el apuntador sea nulo.

Insercin Para insertar un nuevo nodo tenemos que saber la posicin en la que se desea hacerlo, esto hara que el node quede a continuacin del anterior y prximo al siguiente.

4.5.2.1

La lista enlazada bsica es la lista enlazada simple la cual tiene un enlace por nodo. Este enlace apunta al siguiente nodo en la lista, o al valor NULL o a la lista vaca, si es el ltimo nodo.

Insertar al principio de una lista requiere una funcin por separado. Se necesita actualizar PrimerNodo. Eliminar un Nodo. Para eliminar un nodo, necesitamos comprobar si existe un Nodo Anterior y un Nodo Posterior Si existen ambos, actualizamos el puntero del Nodo anterior igual al puntero del nodo a Eliminar.

Una lista enlazada simple contiene dos valores: el valor actual del nodo y un enlace al siguiente nodo

4.5.2.2

Lista Doblemente Enlazada Si solo existe el nodo anterior, actualizamos el puntero del nodo anterior a nulo, es decir que cerramos la lista

Un tipo de lista enlazada ms sofisticado es la lista doblemente enlazada o lista enlazadas de dos vas. Cada nodo tiene dos enlaces: uno apunta al nodo anterior, o apunta al valor NULL o a la lista vaca si es el primer nodo; y otro que apunta al siguiente nodo

- 10 -

Curso: Estructura de la Informacin Si solo existe el nodo Siguiente, actualizamos ese nodo (siguiente), para que sea el inicio de la lista.

Ing. Marco Antonio Pineda Alvarado

Arquitectura bsica de una pila

4.6

PILAS

Una pila (stack en ingls) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del ingls Last In First Out) debido a que el ltimo elemento en entrar ser tambin el primero en salir.
Ultimo objeto apilado (Cima de la Pila)

Una pila tpica es un rea de la memoria de los computadores con un origen fijo y un tamao variable soportadas en una estructura tipo lista o arreglo. Al principio, el tamao de la pila es cero. Un puntero de pila, denominado cima, apunta a la ms reciente localizacin de un elemento apilado en la pila; cuando la pila tiene un tamao de cero, la cima se vuelve cero, apuntando al origen de la pila. Operaciones Las dos operaciones aplicables a todas las pilas son: Apilar, en el que un elemento de datos se coloca en el lugar apuntado por el puntero de pila o cima, y la direccin en el puntero de pila se ajusta por el tamao de los datos de partida. Desapilar: un elemento de datos en la ubicacin actual apuntado por el puntero de pila es eliminado, y el puntero de pila se ajusta por el tamao de los datos de partida.

Primer elemento PILA

Para el manejo de los datos se cuenta con dos operaciones bsicas: apilar (push), que coloca un objeto en la pila, y su operacin inversa, retirar (o desapilar, pop), que retira el ltimo elemento apilado. Ejemplo de Pila 15 20 9 18 18 19 19 19 13

Implementacin de Pilas usando Arreglos Definicin de una Pila:


General Declaraciones

Insertamos 13 en la Pila 15 20 9

Sacamos del final el ltimo elemento 15 20 9 18 Sacamos del final el ltimo elemento 15 20 9 18

'Declaramos una Arreglo sin tamao Dim Pila() as String Dim Tamao As Integer Dim Cima As Integer

Creacin de una Pila: En cada momento slo se tiene acceso a la parte superior de la pila, es decir, al ltimo objeto apilado (denominado TOS, Top of Stack en ingls). La operacin retirar permite la obtencin de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS. Por analoga con objetos cotidianos, una operacin apilar equivaldra a colocar un plato sobre una pila de platos, y una operacin retirar a retirarlo.
CmdCrear Click

'Redimensionamos el tamao del arreglo Tamao = 5 Cima = 0 Redim Pila(tamao)

Operacin de Apilar
CmdApilar Click

ltimo elemento

'Agrega un elemento a la pila If Cima < Tamao then Cima = Cima + 1 Pila(cima+1) = txtElemento.text End If

Operacin de Desapilar
Primer elemento CmdDesapilar Click

- 11 -

Curso: Estructura de la Informacin

Ing. Marco Antonio Pineda Alvarado

'Quita un elemento de la pila If Cima > 0 then Pila(Cima) = Empty Cima = Cima - 1 End If

General

Declaraciones

Mostrar Elementos de la Pila


General Mostrar

'Declaramos una Arreglo sin tamao Dim Cola() as String Dim Tamao As Integer Dim Frente As Integer Dim Final As Integer Dim NumElementos As Integer

'Agrega un elemento a la pila For i=1 to Tamao txtPila.text = txtPila.text + Chr(13)+ _ Pila(i) Next

Creacin de una Cola:


CmdCrear Click

4.7

COLAS

'Redimensionamos el tamao del arreglo Tamao = 5 Frente = 0 Final= 0 Redim Cola(tamao)

Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operacin de insercin push se realiza por un extremo y la operacin de extraccin pop por el otro. Tambin se le llama estructura FIFO (del ingls First In First Out), debido a que el primer elemento en entrar ser tambin el primero en salir.

Operacin de Insertar
CmdInsertar Click

'Agrega un elemento a la Cola If Final < Tamao then Final = Final+ 1 Cola(Final) = txtElemento.text NumElementos = Final (Frente 1) End If

Operacin de Extraer
CmdDesapilar Click

Ejemplos de colas en la vida real seran: personas comprando en un supermercado, esperando para entrar a ver un partido de bisbol, esperando en el cine para ver una pelcula, una pequea peluquera, etc. La idea esencial es que todos son lneas de espera. Operaciones Las dos operaciones aplicables a todas las colas son: Insertar, en el que un elemento de datos se aade a la lista al final de la cola (como ltimo elemento). Extraer: un elemento de la lista es extrado por el principio de la cola, a la vez este es eliminado de la misma.

'Quita un elemento de la pila If Frente > 0 then Cola(Frente) = Empty Frente = Frente + 1 NumElementos = Final (Frente 1) Avanzar End If

Avanzar la Cola
General Avanzar

'Quita un elemento de la pila Dim ColaTmp(1 To NumElementos) For i=1 to NumElementos ColaTmp(i) = Cola(Frente + i - 1) End If Redim Cola(1 To NumElementos) Cola = ColaTmp

Mostrar Elementos de la Cola Implementacin de Colas usando Arreglos Definicin de una Cola: - 12 General Mostrar

Curso: Estructura de la Informacin

Ing. Marco Antonio Pineda Alvarado Acceso a un arreglo de Arreglos Si la notacin de acceso a un arreglo unidimensional o multidimensional es: A(1), A(2), A(3), , A(n) B(1,1), B(1,2), B(2,1), B(2,2), B(n,m) B(1,1,1), B(1,1,2), B(1,1,3), B(1,2,1), B(n,m,p) En un arreglo de arreglos la notacin de acceso para la figura mostrada anteriormente seria la siguiente: P(1)(1), P(1)(2), P(1)(3), P(1)(4)
Recorre el subarreglo A Recorre el subarreglo B

'Muestra los elementos de cola For i=Frente To Final txtCola.text = txtCola.text + Chr(13)+ _ Cola(i) Next

4.8 4.8.1

ESTRUCTURAS COMBINADAS Arreglos que contienen arreglos

P(2)(1), P(2)(2), P(2)(3), P(2)(4)

P(3)(1), P(3)(2), P(3)(3), P(3)(4) Recorre el subarreglo C P(4)(1), P(4)(2), P(4)(3), P(4)(4) Recorre el subarreglo D Implementacin de la estructura Arreglo de arreglos en visual Basic Es posible crear un arreglo de arreglos al crear una matriz Variant y llenarla con otras matrices de distintos tipos de datos. El cdigo siguiente crea dos arreglos secundarios, una que contiene datos enteros y otra que contiene datos tipo cadenas. Luego se crea un tercer arreglo con el tipo de dato Variant y se llena con las matrices de enteros y cadenas. Definicin los arreglos a usar:
= A() General Declaraciones

La mayora de lenguajes de programacin permiten crear estructuras de este tipo. Un Arreglo de Arreglos (estructura lineal) es un conjunto o agrupacin de variables de tipo Arreglo, es decir es un arreglo principal que almacena dentro de sus celdas a otros arreglos secundarios. El acceso a los datos se realiza a travs sus ndices, tanto del Arreglo principal como del secundario. Ej. Representacin grfica de un Arreglo de Arreglos.
ndice Principal ndices Secundarios
1 2 3 4

1
1 2 3 4

2 P()=
1 2 3 4

= B()

3
1 2 3 4

= C()

'Declaramos los arreglos secundarios Dim Numeros(1 to 4) As Integer Dim Nombres(1 to 4) as String 'Declaramos el arreglo principal Dim Principal(1 to 2) As Variant

4 Arreglo Principal

= D() Arreglos Secundarios

Llenamos los arreglos secundarios con datos:


cmdLlenarSecundario Click

Ej. Representacin grfica de un Arreglo de Arreglos.


1 2 3 4

= A()

= B()

2 P()=
1 2 3 4

'Llenamos los arreglos secundarios Numeros(1) = 1 Numeros(2) = 2 Numeros(3) = 3 Numeros(4) = 4 Nombres(1) = "Juan" Nombres(1) = "Maria" Nombres(1) = "Luis" Nombres(1) = "Ana"

3
1 2 3 4

= C()

Llenamos el secundarios:

arreglo

principal
Click

con

los

arreglos

cmdLlenarPrincipal

= D()

'Llenamos los arreglos secundarios Principal(1) = Numeros() Principal(2) = Nombres()


Arreglos Secundarios

Arreglo Principal

Leemos un dato del arreglo principal y los mostramos: - 13 -

Curso: Estructura de la Informacin

Ing. Marco Antonio Pineda Alvarado

cmdLeerDato

Click

'Llenamos los arreglos secundarios txtArregloP = Str(Principal(1)(3)) + _ Str(Principal(2)(3))

5
Concepto

Estructura de Registro

- 14 -

You might also like