Sunteți pe pagina 1din 12

UNIVERSIDAD POLITECNICA DE CD.

VICTORIA

TEMA: ESTRUCTURA DE DATOS

ING. JAIME FCO. MARTNEZ VILLANUEVA

ALUMNO: VCTOR ALFONSO MATINZ MANRIQUE

GRUPO: 1-1

MATRICULA: 1130151

Cd. Victoria Tamaulipas

13/ Sep. /2011

ESTRUCTURA DE DATOS En programacin, una estructura de datos es una forma de organizar un conjunto de datos elementales (un dato elemental es la mnima informacin que se tiene en el sistema) con el objetivo de facilitar la manipulacin de estos datos como un todo o individualmente. Un dato elemental es la mnima informacin que se tiene en un sistema.

Una estructura de datos define la organizacin e interrelacionamiento de estos, y un conjunto de operaciones que se pueden realizar sobre l. Las operaciones bsicas son: Alta, adicionar un nuevo valor a la estructura. Baja, borrar un valor de la estructura. Bsqueda, encontrar un determinado valor en la estructura para realizar una operacin con este valor, en forma SECUENCIAL o BINARIO (siempre y cuando los datos estn ordenados) Otras operaciones que se pueden realizar son: Ordenamiento, de los elementos pertenecientes a la estructura. Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.

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.

CLASIFICACIN DE ESTRUCTURAS DE DATOS 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. En ellas encontramos las siguientes: ESTRUCTURAS LGICAS DE DATOS: 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.

Cd. Victoria Tamaulipas

13/ Sep. /2011

ESTRUCTURAS PRIMITIVAS Y SIMPLES: Son primitivos 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 mas complejas. Las dos cases 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 ligadas lineales. Las estructuras de datos no lineales incluyen grafos y rboles.

VECTORES (ARRAY) Un arreglo (array) es una coleccin de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre comn. Para referirse a un determinado elemento de un array se deber utilizar un ndice, que especifique su posicin relativa en el array. Un arreglo es una coleccin finita, homognea y ordenada de elementos. Finita:Todo arreglo tiene un lmite; es decir,debe determinarse cul ser el nmero mximo de elementos que podrn formar parte del arreglo. Homognea: Todos los elementos del arreglo deben ser del mismo tipo. Ordenada: Se puede determinar cul es el primer elemento, el segundo, el tercero,.... y el n-simo elmento. Los arreglos se clasifican de acuerdo con el nmero de dimensiones que tienen. As se tienen los: - Unidimensionales (vectores) - Bidimensionales (tablas o matrices) - Multidimensionales (tres o ms dimensiones)

Cd. Victoria Tamaulipas

13/ Sep. /2011

Cd. Victoria Tamaulipas

13/ Sep. /2011

ARREGLOS ARRAYS (Arreglos) Un Array es una estructura de datos en la que se almacena una coleccin de datos del mismo tipo (por ejem. Los salarios de los empleados de una empresa). Un Array es una lista de un nmero finito de n elementos del mismo tipo, que se caracteriza por: Almacenar los elementos del array en posiciones de memoria continua. Tener un nico nmero de variable (por ejemplo: salarios) que representa a todos los elementos, y stos a su vez, se diferencian por un ndice o subndice Acceso directo o aleatorio a los elementos individuales del array. Por ejemplo: Salario nombre del array Salario[1] elemento del array Salario[2] 1,2...n subndice del array . . . Salario[n ] Los arrays se clasifican en: Unidimensionales (vectores o listas) Multidimensionales (tablas o matrices)

REGISTROS 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. A cada uno de esos elementos se le llama campo. Son un tipo de datos formado por una coleccin finita de elementos no necesariamente homogneos. El acceso se realiza a travs del nombre del registro seguido del campo especfico al que se desea acceder.

LISTAS La lista enlazada es un TDA que nos permite almacenar datos de una forma organizada, al igual que los vectores pero, a diferencia de estos, esta estructura es dinmica, por lo que no tenemos que saber "a priori" los elementos que puede contener. En una lista enlazada, cada elemento apunta al siguiente excepto el ltimo que no tiene sucesor y el valor del enlace es null. Por ello los elementos son registros que contienen el dato a almacenar y un enlace al siguiente elemento. Los elementos de una lista, suelen recibir tambin el nombre de nodos de la lista.

Cd. Victoria Tamaulipas

13/ Sep. /2011

1. Representa el dato a almacenar. Puede ser de cualquier tipo; en este ejemplo se trata de una lista de enteros. 2. Es un puntero al siguiente elemento de la lista; con este puntero enlazamos con el sucesor, de forma que podamos construir la lista.

Para que esta estructura sea un TDA lista enlazada, debe tener unos operadores asociados que permitan la manipulacin de los datos que contiene. Los operadores bsicos de una lista enlazada son: Insertar: inserta un nodo con dato x en la lista, pudiendo realizarse esta insercin al principio o final de la lista o bien en orden. Eliminar: elimina un nodo de la lista, puede ser segn la posicin o por el dato. Buscar: busca un elemento en la lista. Localizar: obtiene la posicin del nodo en la lista. Vaciar: borra todos los elementos de la lista Lista Doblemente Enlazada 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 si es el primer nodo; y otro que apunta al nodo siguiente, o apunta al valor NULL si es el ltimo nodo. Una lista doblemente enlazada contiene tres valores: el valor, el link al nodo siguiente, y el link al anterior En algn lenguaje de muy bajo nivel, XOR-Linking ofrece una va para implementar listas doblemente enlazadas, usando una sola palabra para ambos enlaces, aunque el uso de esta tcnica no se suele utilizar

Cd. Victoria Tamaulipas

13/ Sep. /2011

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 una 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

Lista Enlazada Doblemente Circular En una lista enlazada doblemente circular, cada nodo tiene dos enlaces, similares a los de la lista doblemente enlazada, excepto que el enlace anterior del primer nodo apunta al ltimo y el enlace siguiente del ltimo nodo, apunta al primero. Como en una lista doblemente enlazada, las inserciones y eliminaciones pueden ser hechas desde cualquier punto con acceso a algn nodo cercano. Aunque estructuralmente una lista circular doblemente enlazada no tiene ni principio ni fin, un puntero de acceso externo puede establecer el nodo apuntado que est en la cabeza o al nodo cola, y as mantener el orden tan bien como en una lista doblemente enlazada.

PILAS Es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del ingles Last In First Out, ltimo en entrar, primero en salir) que permite almacenar y recuperar datos. Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen aadir ms de uso habitual

Crear: se crea la pila vaca Apilar: se aade un elemento a la pila (push.) Desapilar: se elimina el elemento frontal de la pila (pop). Cima: devuelve el elemento que est en la cima de la pila (top o peek). Vaca: devuelve cierto si la pila est vaca o falso en caso contrario.

Cd. Victoria Tamaulipas

13/ Sep. /2011

COLAS Es una estructura de datos lineal, es decir una coleccin de elementos en la cual cada elemento tiene un sucesor y un predecesor nicos, con excepcin del primero y del ltimo. La estructura cola se caracteriza porque las operaciones de insercin y eliminacin de elementos deben hacerse por extremos diferentes El frente o principio de la cola ser el extremo en el cual se eliminarn elementos, mientras que al final ser el extremo en el cual se harn la insercin

Colas circulares Es aquella en la cual el sucesor del ltimo elemento es el primero. Por lo tanto, el manejo de las colas como estructuras circulares permite un mejor uso del espacio de memoria reservando para la implementacin de las pilas.

Cd. Victoria Tamaulipas

13/ Sep. /2011

Colas dobles Permiten realizar las operaciones de insercin y eliminacin por cualquiera de sus extremos. Una cola doble tambin puede ser circular, en dicho caso, ser necesario que los mtodos de insercin y eliminacin (sobre cualquiera de los mtodos de insercin y eliminacin (sobre cualquiera de los extremos) considere el movimiento adecuado de los punteros Otros tipos Colas de Prioridad En ellas, los elementos se atienden en el orden indicado por una prioridad asociada a cada uno. Si varios elementos tienen la misma prioridad, se atendern de modo convencional segn la posicin que ocupen. Hay dos formas de implementacin. Aadir un campo a cada nodo con su prioridad. Resulta conveniente mantener la cola ordenada por orden de prioridad. Crear tantas colas como prioridades haya, y almacenar cada elemento en su cola

Bicolas de entrada registrada.- Son aquellas donde la insecin solo se hace por el fina, aunque podemos eliminar al inicio o al final Bicolas de salida restringida.- Son aquellas donde solo se elimina por el final, aunque se puede insertar al inicio y al final

ARBOLES Los rboles son estructuras de datos no lineales. Cada elemento conocido con el nombre de NODO Un rbol se define como una coleccin de nodos donde cada uno adems de almacenar informacin, guarda las direcciones de sus sucesores. Se conoce la direccin de uno de los nodos, llamado raz y a partir de el se tiene acceso a todos los otros miembros de la estructura. Grafos, anidacin de parntesis y diagramas de venn. Hijo: Es aquel nodo que siempre va a tener un nodo antecesor o padre, son aquellos que se encuentran en el mismo nivel Padre: Es aquel que tiene hijos y tambin puede tener o no antecesores.

Cd. Victoria Tamaulipas

13/ Sep. /2011

Hermano: Dos nodos son hermanos si son apuntados por el mismo nodo, es decir si tienen el mismo padre. Raz: Es el nodo principal de un rbol y no tiene antecesores. Hoja o terminal: Son aquellos nodos que no tienen hijos o tambin los nodos finales de un rbol. Interior: Se dice que un nodo es interior si no es raz ni hoja. Nivel de un nodo: Se dice que el nivel de un nodo es el numero de arcos que deben ser recorridos, partiendo de la raz para llegar hasta el. Altura del rbol: Se dice que la altura de un rbol es el mximo de los niveles considerando todos sus nodos. Grado de un nodo: se dice que el grado de un nodo es el nmero de hijos que tiene dicho nodo.

Recorrido rbol Existen dos recorridos tpicos para listar los nodos de un rbol: primero en profundidad y primero en anchura. En el primer caso, se listan los nodos expandiendo el hijo actual de cada nodo hasta llegar a una hoja, donde se vuelve al nodo anterior probando por el siguiente hijo y as sucesivamente. En el segundo, por su parte, antes de listar los nodos de nivel n + 1 (a distancia n + 1 aristas de la raz), se deben haber listado todos los de nivel n. Otros recorridos tpicos del rbol son: El recorrido en preorden, tambin llamado orden previo consiste en recorrer en primer lugar la raz y luego cada uno de los hijos en orden previo. El recorrido en inorden, tambin llamado orden simtrico (aunque este nombre slo cobra significado en los rboles binarios) consiste en recorrer en primer lugar A1, luego la raz y luego cada uno de los hijos en orden simtrico. El recorrido en postorden, tambin llamado orden posterior consiste en recorrer en primer lugar cada uno de los hijos en orden posterior y por ltimo la raz.

Cd. Victoria Tamaulipas

13/ Sep. /2011

Tipos de Arboles Arboles binarios: Son rboles donde cada nodo slo puede apuntar a dos nodos. Se define un rbol binario como un conjunto finito de elementos (nodos) que bien est vaco o est formado por una raz con dos rboles binarios disjuntos, es decir, dos descendientes directos llamados subrbol izquierdo y subrbol derecho. Los rboles binarios (tambin llamados de grado 2 )tienen una especial importancia. Las aplicaciones de los arboles binarios son muy variadas ya que se les puede utilizar para representar una estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos.

ARBOLES BINARIOS DE BUSQUEDA Son rboles binarios ordenados. Desde cada nodo todos los nodos de una rama sern mayores, segn la norma que se haya seguido para ordenar el rbol, y los de la otra rama sern menores. Los rboles binarios se utilizan frecuentemente para representar conjuntos de datos cuyos elementos se identifican por una clave nica. Si el rbol est organizado de tal manera que la clave de cada nodo es mayor que todas las claves su subrbol izquierdo, y menor que todas las claves del subrbol derecho se dice que este rbol es un rbol binario de bsqueda.

Cd. Victoria Tamaulipas

13/ Sep. /2011

ARBOLES- B Son rboles cuyos nodos pueden tener un nmero mltiple de hijos tal como muestra el esquema.

Cd. Victoria Tamaulipas

13/ Sep. /2011

S-ar putea să vă placă și