lunes, 12 de diciembre de 2011

ESTRUCTURA DE DATOS

Tipos De Datos Simples

Un  tipo de dato simple es un valor que ActionScript almacena en el nivel más bajo de abstracción, lo que significa que las operaciones con tipos de datos simples son generalmente más rápidas y eficientes que las operaciones realizadas con tipos de datos complejos.

Los siguientes tipos de datos definen un conjunto de uno o varios valores simples: Boolean (booleano), null (nulo), Number (número), String (cadena) y undefined (no definido).

Boolean
Simple. El tipo de datos Boolean (booleano) consta de dos valores: true y false. Ningún otro valor es válido para variables de este tipo. El valor predeterminado de una variable booleana declarada pero no inicializada es false.
null
Simple. El tipo de datos null (nulo) contiene el valor null. Este valor significa "ningún valor", es decir, no hay datos. Puede asignar el valor null en distintas situaciones para indicar que una propiedad o variable no tiene ningún valor asignado. El tipo de datos null es el tipo de datos predeterminado para todas las clases que definen tipos de datos complejos. Una excepción a esta regla es la clase Object, que adopta de manera predeterminada el valor undefined.
Number
Simple. Este tipo de datos representa enteros, enteros sin signo y números de coma flotante. Para almacenar un número de coma flotante, debe incluir una coma decimal en el número. Sin la coma decimal, el número se almacena como un entero. El tipo de datos Number puede almacenar valores entre Number.MAX_VALUE (muy alto) y Number.MIN_VALUE (muy bajo).
String
Cadena. El tipo de datos String (cadena) representa una secuencia de caracteres de 16 bits que puede incluir letras, números y signos de puntuación. Las cadenas se almacenan como caracteres Unicode empleando el formato UTF-16. Una operación sobre un valor de cadena (String) devuelve una nueva instancia de la cadena.
undefined
Indefinido. El tipo de datos undefined (no definido) contiene un valor: undefined. Este es el valor predeterminado de las instancias de la clase Object. Sólo puede asignar el valor undefined a variables que pertenezcan a la clase Object.

DATOS ABSTRACTOS
Un tipo de datos abstracto es aquel definido por el programador que puede ser manipulado de una manera similar a los definidos por el sistema .
Al igual que estos últimos, un tipo de dato abstracto corresponde a un conjunto (tal vez tamaño infinito) “”00″” HECTORINN”“00″” De valores lícitos y de un numero de operaciones primitivas que pueden ejecutarse sobre ellos.
Un tipo abstracto de datos es una abstracción, que describe un conjunto de objetos en términos de una estructura de datos encapsulada u oculta y las operaciones sobre esta estructura. Lo tipos de datos abstractos, al contrario de los tipos de datos primitivos, pueden ser definidos por el usuario al construir una aplicación, en lugar de ser construidos por el diseñador del lenguaje subyacente. En las clases de programación los ADT incluyen métodos por ejemplo un ADT que represente longitudes expresadas en unidades inglesas incluirá métodos para sumar pies y pulgadas.
El encapsulamiento, o su equivalente, el ocultamiento de información, se refiere a la practica de incluir dentro de un objeto todo lo que necesita, y de hacerlo, además, de tal manera que ningún objeto necesite conocer nunca su estructura interna.

ESTRUCTURA DE DATOS
En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema.
Una estructura de datos define la organización e interrelación de éstos y un conjunto de operaciones que se pueden realizar sobre ellos.
Las operaciones básicas son:
1.- Alta, adicionar un nuevo valor a la estructura.
2.- Baja, borrar un valor de la estructura.
3.- Búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma secuencial o binario (siempre y cuando los datos estén ordenados).
4.- Ordenamiento, de los elementos pertenecientes a la estructura.
5.- Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.

ESTRUCTURA DE DATOS NO LINEALES
Las estructuras de datos no lineales se caracterizan por no existir una relación de adyacencia, entre sus elementos, es decir, un elemento puede estar relacionado con cero, uno o más elementos. La estructura no lineal de datos más general es el grafo donde sus nodos pueden relacionarse de cualquier manera sin una relación de orden predefinida.
Ejemplo de ellas son:
Los Grafos y Los Arboles.
ESTRUCTURA DE DATOS LINEALES
Las estructuras de datos simples se pueden combinar de varias maneras para formar estructuras mas complejas. Las dos clases principales de estructuras de datos son las lineales y las no lineales, dependiendo de la complejidad de las relaciones lógicas que representan.
Ejemplo de ellas son:
Las Pilas, Las Colas Y Las Listas Ligadas.

MEMORIA DINAMICA
La memoria dinámica se refiere a aquella memoria que no puede ser definida ya que no se conoce o no se tiene idea del número de la variable a considerarse, la solución a este problema es la memoria dinámica que permite solicitar memoria en tiempo de ejecución, por lo que cuanta más memoria se necesite, más se solicita al sistema operativo. El sistema operativo maneja la memoria gracias al uso de punteros, por la misma naturaleza del proceso nos impide conocer el tamaño de la memoria necesaria en el momento de compilar.
Cuando se crea un programa en el que es necesario manejar memoria dinámica el sistema operativo divide el programa en cuatro partes que son: texto, datos (estáticos), pila y una zona libre o heap. En la ultima parte es donde queda la memoria libre para poder utilizarla de forma dinámica. En el momento de la ejecución habrá tanto partes libres como partes asignadas al proceso por lo cual si no se liberan las partes utilizadas de la memoria y que han quedado inservibles es posible que se “agote” esta parte y por lo tanto la fuente de la memoria dinámica. También la pila cambia su tamaño dinámicamente, pero esto no depende del programador sino del sistema operativo.

ARREGLOS
En programación, una matriz o vector (llamados en inglés arrays) es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones).
Un arreglo se compone de elementos de igual tamaño almacenados linealmente en posiciones de memoria consecutiva.
ARREGLOS UNIDIMENCIONALES
Un arreglo unidimensional es un tipo de datos estructurado que está formado de una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales.
El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su posición relativa.
ARREGLOS BIDIMENCIONALES
Este tipo de arreglos al igual que los anteriores es un tipo de dato estructurado, finito ordenado y homogéneo. El acceso a ellos también es en forma directa por medio de un par de índices.
Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y columnas. La primera dimensión del arreglo representa las columnas, cada elemento contiene un valor y cada dimensión representa una relación
La representación en memoria se realiza de dos formas : almacenamiento por columnas o por renglones.

DECLARACION DE ARREGLOS EN JAVA Y C #
La declaracion de arreglos en java y c # se torna muy parecida.,
En la explicación que acontinuacion se dara notamos que es igual.
En primera instancia al declarar un arreglo unidimencional ( Vector ).

Ejemplo:

Se trata de declara primero el tipo de arreglo, ya sea de tipo String, int, Boolean, etc.
seguido de un corchete que abre y enseguida uno que cierra [ ].
String []      int []      Boolean []      Double []      etc.

Enseguida se le asigna un nombre cualquiera al arreglo.

String [] vector
Lo aremos de la forma rapida., En un solo renglon.

Entonces procedemos a hacer una instancia al arreglo y ahi mismo darle un tamaño.

Ejemplo:
String [] vector = new String [100];
Aqui ya el tamaño se asignó dentro de los corchetes.,
Aqui ya esta declarado un arreglo de tipo String y de tamaño de 100 espacios.
Para posteriormente ser usado, llenado, hacer operaciones y posteriormente imprimirlo.

Ahora procedemos a declarar un arreglo Bidimencional ( Matriz ).

Ejemplo:

Se trata de declara primero el tipo de arreglo, ya sea de tipo String, int, Boolean, etc.
seguido de un corchete que abre y enseguida uno que cierra Pero como este se compone
de filas y columnas, se separa el espacio dentro del corchete por una coma  [ , ].
String [,]      int [,]      Boolean [,]      Double [,]      etc.

Enseguida se le asigna un nombre cualquiera al arreglo.

String [,] matriz
Lo aremos de la forma rapida., En un solo renglon.

Entonces procedemos a hacer una instancia al arreglo y ahi mismo darle un tamaño.

Ejemplo:
String [,] matriz = new String [4,4];
Aqui ya el tamaño se asignó dentro de los corchetes.,
Un tamaño para filas y otro para columnas
Aqui ya esta declarado un arreglo de tipo String y de tamaño de 4*4 espacios.
Para posteriormente ser usado, llenado, hacer operaciones y posteriormente imprimirlo.

0 comentarios:

Publicar un comentario en la entrada