Sie sind auf Seite 1von 6

Repblica Bolivariana de Venezuela Ministerio del Poder Popular para la Educacin Universitaria Instituto Universitario Tecnolgico del Estado

Bolvar III-INF-1M

Profesor: Richard Martnez

Integrantes: *Figuera Nelly CI.24.849.005 *La Rosa Holly CI.22.817.475 *Kaenia Laya CI.20.555.875

Ciudad Bolvar, 24-01-2012

y Estructura dinmica de datos (concepto):


Son estructuras que crecen a medida que se ejecuta un programa. Una estructura dinmica de datos es una coleccin de elementos llamados nodos normalmente conocidos como registros. Al contrario que un arreglo, que contiene espacio para almacenar un nmero fijo de elementos, una estructura dinmica de datos se ampla y contrae durante la ejecucin del programa. Las estructuras dinmicas de datos se pueden dividir en dos grandes grupos: -Lineales: listas enlazadas, pilas, colas -No lineales: rboles , grafos

Las estructuras dinmicas de datos se utilizan para almacenamiento de datos del mundo real, que diariamente cambia constantemente. Un ejemplo tpico, es la lista de pasajeros de una lnea area. Si esta lista se mantuviera en orden alfabtico en un arreglo, sera necesario hacer espacio para insertar un nuevo pasajero por orden alfabtico. Por tanto se requiere utilizar un ciclo para copiar los datos del registro de cada pasajero al siguiente elemento del arreglo. Caractersticas: *-Las estructuras de datos estn compuestas de otras pequeas estructuras a las que llamaremos nodos o elementos, que agrupan los datos con los que trabajar nuestro programa y adems uno o ms punteros autorreferenciales, es decir, punteros a objetos del mismo tipo nodo. *-Permiten crear estructuras de datos que se adapten a las necesidades reales a las que suelen enfrentarse nuestros programas. Pero no slo eso, como veremos, tambin nos permitir crear estructuras de datos muy flexibles, ya sea en cuanto al orden, la estructura interna o las relaciones entre los elementos que las componen.

*-Crean estructuras de datos muy flexibles, ya sea en cuanto al orden, la estructura interna o las relaciones entre los elementos que las componen. *-Las estructuras dinmicas son una implementacin de TDAs o TADs (Tipos Abstractos de Datos). En estos tipos el inters se centra ms en la estructura de los datos que en el tipo concreto de informacin que almacenan. Estructura bsica del nodo: struct nodo \{ int dato; struct nodo *otronodo; }; *-Para poder acceder a un nodo de la estructura slo necesitaremos un puntero a un nodo.

*-La Estructura de Datos posee un primer nivel de abstraccin en donde simplemente se identifica la coleccin de elementos al agrupar y sus operaciones de acceso. En un segundo nivel, el de implementacin, ya se comienza a pensar en un lenguaje de programacin especfico y es ah donde surgen preguntas como cul es la estructura ptima? o qu funciones o procedimientos debemos definir? Ejemplo: Implementar un juego entretenido para 2 jugadores. El Nodo: Depende del nmero de punteros y de las relaciones entre nodos, podemos distinguir varios tipos de estructuras dinmicas. Sus tipos bsicos y esenciales son: (Lista, Pila y Cola).

y Listas:
*-Listas Enlazadas: Es un conjunto de elementos llamados nodos en los que cada uno de ellos contiene un dato y tambin la direccin del siguiente nodo. El primer elemento de la lista es la cabecera, que slo contiene un puntero que seala el primer elemento de la lista.

El ltimo nodo de la lista apunta a NULL (nulo) porque no hay ms nodos en la lista. Se usar el trmino NULL para designar el final de la lista.

Cabecera: Las operaciones que normalmente se ejecutan con listas incluyen: 1. Recuperar informacin de un nodo especfico. 2. Encontrar el nodo que contiene una informacin especfica. 3. Insertar un nuevo nodo en un lugar especfico. 4. Insertar un nuevo nodo en relacin a una informacin particular. 5. Borrar un nodo existente. *- Listas abiertas: La forma ms simple de estructura dinmica es la lista abierta. En esta forma los nodos se organizan de modo que cada uno apunta al siguiente, y el ltimo no apunta a nada, es decir, el puntero del nodo siguiente vale NULL. Normalmente la lista es un puntero a ese primer nodo y llamaremos a ese nodo la cabeza de la lista. Eso es porque mediante ese nico puntero podemos acceder a toda la lista.

*-Listas circulares: o listas cerradas, son parecidas a las listas abiertas, pero el ltimo elemento apunta al primero. De hecho, en las listas circulares no puede hablarse de "primero" ni de "ltimo". Cualquier nodo puede ser el nodo de entrada y salida.

y Pilas:
Es una coleccin ordenada de elementos, en una pila se insertan o se suprimen los elementos en un extremo al cual se le llama tope o cima; en una pila se pueden agregar nuevos elementos en el tope de la pila o se pueden quitar los elementos que estn en el tope

Operaciones: Todas las operaciones naturales de una pila pueden ser ejecutadas en tiempo de O(1). Como lo son aspilar donde se puede insertar un elemento en la cima, desapilar que elimina la posicin de la cima y Cima que devuelve el elemento que hay sin eliminarlo Una lista se comporta como una pila si las inserciones y extracciones las hacemos por un mismo lado de la lista. Tambin se las llama listas LIFO (Last In First Out - ltimo en entrar primero en salir). Una pila al ser una lista puede almacenar en el campo de informacin cualquier tipo de valor (int, char, float, vector de caracteres, un objeto, etc.) Para estudiar el mecanismo de utilizacin de una pila supondremos que en el campo de informacin almacena un entero (para una fcil interpretacin y codificacin). Inicialmente la PILA est vaca y decimos que el puntero raz apunta a Null (Si apunta a Null decimos que no tiene una direccin de memoria):

Se inserta un valor entero en la pila: insertar (10)

Luego de realizar la insercin la lista tipo pila queda de esta manera: un nodo con el valor 10 y raz apunta a dicho nodo. El puntero del nodo apunta a Null ya que no hay otro nodo despus de este. Luego se inserta el valor (4)

Ahora el primer nodo de la pila es el que almacena el valor cuatro. Raz apunta a dicho nodo. Recordemos que raz es el puntero externo a la lista que almacena la direccin del primer nodo. El nodo que acabamos de insertar en el campo puntero guarda la direccin del nodo que almacena el valor 10. Al extraer de la pila tenemos: extraer ()

La pila ha quedado con un nodo. Hay que tener cuidado que si se extrae un nuevo nodo la pila quedar vaca y no se podr extraer otros valores (avisar que la pila est vaca), Siguiendo estos pasos, as, podemos obtener este resultado.

y Colas:
-En estas estructuras de datos, el acceso est limitado al elemento ms antiguamente insertado. Todas las operaciones naturales de una cola pueden ser ejecutadas en tiempo de O(1). Encolar (enqueue): Es cuando se inserta un elemento al final de la cola. Desencolar (dequeue): Elimina la posicin en el frente de la cola y devuelve el objeto que contiene. Ver (peek): Es aquel que Devuelve el elemento que se encuentra en el frente de la cola sin eliminarlo. Colas dobles: Se caracteriza por ser una estructura similar a una cola, excepto que est permitido el acceso por ambos extremos. As como en las listas, para restaurar las referencias con complejidad constante luego de una eliminacin al finalizar.

Existen varias formas de implementar una cola en la memoria de un computador. Una forma simple consiste en almacenar los datos en posiciones de memoria adyacentes y utilizar punteros para el principio y el fin de la cola. Cuando un elemento se aade a la cola, el puntero de la parte posterior se ajusta para que seale al nuevo elemento. De manera similar, cuando un elemento se elimina de la cola, se debe ajustar el puntero delantero para que seale al nuevo primer elemento.

Das könnte Ihnen auch gefallen