Anda di halaman 1dari 12

REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA DE LA FUERZA ARMADA

NACIONAL T.S.U ANLISIS Y DISEO DE SISTEMAS 3 SEMESTRES, SECCIN 02

Bachiller:

Julio Carvajal

Ciudad Bolvar, Estado Bolvar.

INDICE

Introduccin. Estructura dinmica de datos. Pilas. Colas. Listas. Programacin avanzada. Excepciones. Multithreading. Fundamentos de la programacin orientada a objetos. Conclusin. Bibliografa.

03 04 04 05 07 10 10 10 10 11 12

Introduccin

La programacin es el proceso de disear, codificar, depurar y mantener el cdigo fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje de programacin. La programacin se rige por reglas y un conjunto ms o menos reducido de rdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada. La estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulacin. De la estructura de datos se deriva la estructura dinmica de datos, la cual es una parte fundamental para los programadores, al igual que la programacin avanzada orientada a objetos, por lo que es importante conocer que son, cules son sus fundamentos, operaciones entre otras cosas.

LAS ESTRUCTURAS DINMICAS DE DATOS Son estructuras que cuya dimensin puede crecer o disminuir durante la ejecucin del programa. Son aquellas cuyo tamao vara en tiempo de ejecucin. Las ms famosas son: Listas, Pilas, Colas, rboles y Grafos. PILAS Es un mtodo de estructuracin datos usando la forma LIFO (ltimo en entrar, primero en salir), que permite almacenar y recuperar datos. Una pila cuenta con dos operaciones imprescindibles que son apilar o aadir y desapilar o eliminar, a las que en las implementaciones modernas de las pilas se suelen aadir ms de uso habitual. Crear: se crea la pila vaca. (constructor) Tamao: regresa el nmero de elementos de la pila. (size) Apilar: se aade un elemento a la pila.(push) Desapilar: se elimina el elemento frontal de la pila.(pop) Cima: devuelve el elemento que esta en la cima de la pila. (top o peek) Vaca: devuelve cierto si la pila est vaca o falso en caso contrario (empty). Ejemplo: void inicializacin (Pila *tas); int apilar (Pile *tas, char *dato); int desapilar (Pila *tas); #define pila_dato(tas) tas->inicio->dato void muestra (Pila *tas); Las pilas alojadas en arreglo se puede describir como, un arreglo constituye el depsito de los elementos de la pila. El rango del arreglo debe ser lo suficientemente amplio para poder contener el mximo previsto de elementos de la pila. Un extremo del arreglo se considera el fondo de la pila, que permanecer fijo. La parte superior de la pila, tope o cima, estar cambiando dinmicamente durante la ejecucin del programa. Adems del arreglo, una variable entera nos sirve para tener en todo momento el ndice del arreglo que contiene el elemento tope.

Implementacin de procedimientos de la pilas, un requisito tpico de almacenamiento de una pila de n elementos es O(n). El requisito tpico de tiempo de O(1) las operaciones tambin son fciles de satisfacer con un array o con listas enlazadas simples.

COLAS 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. Operaciones Bsicas Crear: se crea la cola vaca. Encolar (aadir, entrar, insertar): se aade un elemento a la cola. Se aade al final de esta. Desencolar (sacar, salir, eliminar): se elimina el elemento frontal de la cola, es decir, el primer elemento que entr. Frente (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entr. Ejemplo: #ifndef COLA #define COLA // Define la cola template <class T> class Cola{ private: struct Nodo{ T elemento; struct Nodo* siguiente; // coloca el nodo en la segunda posicin }* primero; struct Nodo* ultimo; unsigned int elementos; public: Cola(){

elementos = 0; } ~Cola(){ while (elementos != 0) pop(); } void push(const T& elem){ Nodo* aux = new Nodo; aux->elemento = elem; if (elementos == 0) primero = aux; else ultimo->siguiente = aux; ultimo = aux; ++elementos; } void pop(){ Nodo* aux = primero; primero = primero->siguiente; delete aux; --elementos; } T consultar() const{ return primero->elemento; } bool vacia() const{ return elementos == 0; } unsigned int size() const{ return elementos; } }; #endif

Doble colas: son colas en donde los nodos se pueden aadir y quitar por ambos extremos; se les llama DEQUE (Double Ended QUEue). Para representar las bicolas lo podemos hacer con un array circular con Inicio y Fin que apunten a cada uno de los extremos. Hay variantes: Bicolas de entrada restringida: Son aquellas donde la insercin slo se hace por el final, aunque podemos eliminar al inicio al final. Bicolas de salida restringida: Son aquellas donde slo se elimina por el final, aunque se puede insertar al inicio y al final. Colas circulares: en las que el ltimo elemento y el primero estn unidos. Aplicaciones de las Colas Las Colas tambin se utilizan en muchas maneras en los sistemas operativos para planificar el uso de los distintos recursos de la computadora. Uno de estos recursos es la propia CPU (Unidad Central de Procesamiento). Si est trabajando en un sistema multiusuario, cuando le dice a la computadora que ejecute un programa concreto, el sistema operativo aade su peticin a su "cola de trabajo". Cuando su peticin llega al frente de la cola, el programa solicitado pasa a ejecutarse. Igualmente, las colas se utilizan para asignar tiempo a los distintos usuarios de los dispositivos de entrada/salida (E/S), impresoras, discos, cintas y dems. El sistema operativo mantiene colas para peticiones de imprimir, leer o escribir en cada uno de estos dispositivos. LA LISTA Es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos. Tipos de listas Listas simples enlazadas

La lista enlazada bsica es la lista enlazada simple la cual tiene un enlace por nodo. Este enlace apunta al siguiente nodo (o indica que tiene la direccin en memoria del siguiente nodo) en la lista, o al valor NULL o a la lista vaca, si es el ltimo nodo. Listas doblemente enlazadas

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. 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 esta tcnica no se suele utilizar. 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. Listas enlazadas circulares simples

Cada nodo tiene un enlace, similar al de las listas enlazadas simples, excepto que el siguiente nodo del ltimo apunta al primero. Como en una lista enlazada simple, los nuevos nodos pueden ser solo eficientemente insertados despus de uno que ya tengamos referenciado. Por esta razn, es usual quedarse con una referencia solamente al ltimo elemento en una lista enlazada circular simple, esto nos permite rpidas inserciones al principio, y tambin permite accesos al primer nodo desde el puntero del ltimo nodo. 1 Listas enlazadas doblemente circulares

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.

Operaciones con listas: record Node { data // El dato almacenado en el nodo next // Una referencia al nodo siguiente, nulo para el ltimo nodo } record List { Node PrimerNodo // Apunta al primer nodo de la lista; nulo para la lista vaca } record Node { data // El dato almacenado en el nodo next // Una referencia al nodo siguiente, nulo para el ltimo nodo prev // Una referencia al nodo anterior, nulo para el primer nodo } record List { Node firstNode // apunta al primer nodo de la lista; nulo para la lista vaca Node lastNode // apunta al ltimo nodo de la lista; nulo para la lista vaca } Aplicaciones con listas Las listas enlazadas son usadas como mdulos para otras muchas estructuras de datos, tales como pilas, colas y sus variaciones. El campo de datos de un nodo puede ser otra lista enlazada. Mediante este mecanismo, podemos construir muchas estructuras de datos enlazadas con listas; esta prctica tiene su origen en el lenguaje de programacin Lisp, donde las listas enlazadas son una estructura de datos primaria (aunque no la nica), y ahora es una caracterstica comn en el estilo de programacin funcional. Una representacin enlazada de un grupo de elementos de un cierto tipo es una lista enlazada de nodos, es decir, una secuencia de nodos situados en la memoria dinmica y conectada entre s; Ejemplo: lista de enteros {6, 9, 5, 4, 7,0} Ejemplo int ins_fin_lista (Lista * lista, Element * actual, char *dato){ Element *nuevo_elemento;

if ((nuevo_elemento = (Element *) malloc (sizeof (Element))) == NULL) return -1; if ((nuevo_elemento->dato = (char *) malloc (50 * sizeof (char))) == NULL) return -1; strcpy (nuevo_elemento->dato, dato); actual->siguiente = nuevo_elemento; nuevo_elemento->siguiente = NULL; lista->fin = nuevo_elemento; lista->tamao++; return 0; } PROGRAMACIN AVANZADA La programacin orientada a objetos es un paradigma de programacin que usa objetos y sus interacciones, para disear aplicaciones y programas de computadora. Est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y

encapsulamiento. Una excepcin es un objeto que se genera automticamente cuando se produce un acontecimiento circunstancial que impide el normal funcionamiento del programa: Multithreading o multihilo: Las unidades centrales de procesamiento con capacidad para multihilo (Multithreading en ingls) tienen soporte en hardware para ejecutar eficientemente mltiples hilos de ejecucin. Los fundamentos de la programacin orientada a objetos: es una de la ideas de programacin ms extraordinaria de los ltimos aos y es una materia que puede ser estudiada y practicada por muchos aos, sin embargo, la idea central es simple: organizar los programas de modo que reflejen la forma de organizacin de los objetos en el mundo real.

CONCLUSIN.

Las estructuras dinmicas de datos son estructuras que cuya dimensin puede crecer o disminuir durante la ejecucin del programa. Son aquellas cuyo tamao vara en tiempo de ejecucin. Las ms famosas son: Pilas es un mtodo de estructuracin datos usando la forma LIFO, que permite almacenar y recuperar datos. Las funciones principales de las pilas son crear, tamao, apilar, des-apilar, cima y vaca. Colas 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, debido a que el primer elemento en entrar ser tambin el primero en salir. Las operaciones bsicas son Crear, Encolar, Desencolar y Frente. Los tipos de colas son doble colas y colas circulares. La lista es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos. Los tipos de listas son la lista enlazada bsica, listas doblemente enlazadas, listas enlazadas circulares, listas enlazadas circulares y listas enlazadas doblemente circulares. La programacin orientada a objetos es un paradigma de programacin, est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y encapsulamiento. Una excepcin es un objeto que se genera automticamente cuando se produce un acontecimiento circunstancial que impide el normal funcionamiento del programa. Multithreading o multihilo son las unidades centrales de procesamiento con capacidad para multihilo tienen soporte en hardware para ejecutar eficientemente mltiples hilos de ejecucin. Los fundamentos de la programacin orientada a objetos es una de la ideas de programacin ms extraordinaria de los ltimos aos y es una materia que puede ser estudiada y practicada por muchos aos.

BIBLIOGRAFA.

http://www.lcc.uma.es/~pscp/doc/LISTA.pdf http://www.monografias.com/trabajos14/estrucdinamicas/estrucdinamicas.shtml#estru http://www.alegsa.com.ar/Dic/pila.php http://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica) http://www.ecomchaco.com.ar/utn/GestionDeDatos/Unidad%202.pdf http://estructura-de-datos-garo.blogspot.com/2011/10/colas-informatica.html https://es.wikipedia.org/wiki/Lista_(inform%C3%A1tica) http://es.wikipedia.org/wiki/Cola_(inform%C3%A1tica)#Tipos_de_colas http://www.monografias.com/trabajos25/colas/colas.shtml http://es.slideshare.net/mluisavel/listas-enlazadas http://www.cs.buap.mx/~ygalicia/POO.pdf http://www.desarrolloweb.com/articulos/499.php http://es.wikipedia.org/wiki/Multihilo http://programacionorientadaaobjetos.wordpress.com/2011/04/12/fundamentos-deprogramacion-orientada-a-objetos/

Anda mungkin juga menyukai