You are on page 1of 16

Repblica Bolivariana de Venezuela Ministerio del Poder popular para la Defensa Universidad Nacional Experimental de las Fuerzas Armadas

Anlisis y Diseo de Sistemas Ciudad Bolvar Estado Bolvar

Facilitadora: Dennis Acosta

Bachiller: Oscar Antonio Salazar (21.578.487)

Cuidad Bolvar 13/06/2013

INTRODUCCIN
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 , ltimo en entrar , primero en salir ) que permite almacenar y recuperar datos. Esta estructura sea plica en multitud de ocasiones en el rea de informtica debido a su simplicidad y ordenacin implcita de la propia estructura. 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 des apilar, pop), que retira el ltimo elemento apilado. Una cola (tambin llamada fila) es unos 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.

Las colas se utilizan en sistemas informticos, transportes y operaciones de investigacin(entre otros), dnde los objetos, personas o eventos son tomados comodatos que se almacenan y se guardan mediante colas para su posterior procesamiento. Este tipo de estructura de datos abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas enlazadas. Es un TAD 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 tenemos que saber a priori los elementos que pueden contener. Una lista se utiliza para almacenar informacin de mismo tipo, con la caracterstica de que puede Contener un nmero indeterminado de elementos (mientras haya memoria) y que estos Elementos mantienen un orden explcito (al menos el de la forma en que se introducen en la lista).Este ordenamiento explicito implica que cada elemento mantiene un enlace al siguiente elemento.

PILAS

na 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, ltimo en entrar, primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el rea de informtica debido a su simplicidad y ordenacin implcita de la propia estructura. 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. 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. Las pilas suelen emplearse en los siguientes contextos:
1) 2) 3)

Evaluacin de expresiones en notacin postfija (notacin polaca inversa). Reconocedores sintcticos de lenguajes independientes del contexto Implementacin de recursividad.

Operaciones sobre pilas


Insertar: En primer lugar hay que decir que esta operacin es muy comnmente denominada push. La insercin en una pila se realiza en su cima, considerando la cima como el ltimo elemento insertado. Esta es una de las particularidades de las pilas, mientras el resto de estructuras de datos lineales se representan grficamente en horizontal, las pilas se representan verticalmente. Por esta razn es por lo que se habla de cima de la pila y no de cola de la cima. Aunque en el fondo sea lo mismo, el ltimo elemento de la estructura de datos. Las operaciones a realizar para realizar la insercin en la pila son muy simples, hacer que el nuevo nodo apunte a la cima anterior, y definir el nuevo nodo como cima de la pila.

Al insertar sobre esta pila el elemento 0, la pila resultante sera

Borrar:

Esta operacin es normalmente conocida como pop. Cuando se elimina un elemento de la pila, el elemento que se borra es el elemento situado en la cima de la pila, el que menos tiempo lleva en la estructura; Las operaciones a realizar son muy simples, avanzar el puntero que apunta a la cima y extraer la cima anterior. Si aplicamos la operacin pop a la pila de 4 elementos representada arriba el resultado sera:

Pilas olojadas
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
na cola (tambin llamada fila) 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. Las colas se utilizan en sistemas informticos, transportes y operaciones de investigacin (entre otros), dnde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. Este tipo de estructura de datos abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas enlazadas.

Operacin con cola


Insertar: La insercin en las colas se realiza por la cola de las mismas, es decir, se inserta al final de la estructura. Para llevar a cabo esta operacin nicamente hay que reestructurar un par de punteros, el ltimo nodo debe pasar a apuntar al nuevo nodo (que pasar a ser el ltimo) y el nuevo nodo pasa a ser la nueva cola de la cola. Vamos a verlo grficamente sobre la siguiente cola:

Si a esta cola le aadimos el elemento 0, la cola resultante sera:

Borrar: El borrado es una operacin muy simple en las colas. Esta operacin supone extraer la cabeza de la cola, ya que es el elemento que ms tiempo lleva en la estructura. Para llevar a cabo esta operacin nicamente hay que extraer el elemento situado en la cabeza de la cola y avanzar el puntero cabeza una posicin, para que de esta forma la nueva cabeza sea el segundo elemento que ms tiempo lleva en la cola. Si realizamos la operacin eliminar sobre la colas de 4 elementos del ltimo grfico el resultado sera el siguiente:

Cola Circular
Una cola circular o anillo es una estructura de datos en la que los elementos estn de forma circular y cada elemento tiene un sucesor y un predecesor. Los elementos pueden cosultarse, aadirse y eliminarse unicamente desde la cabeza del anillo que es una posicin distinguida. Existen dos operaciones de rotaciones, una en cada sentido, de manera que la cabeza del anillo pasa a ser el elemento sucesor, o el predecesor, respectivamente, de la cabeza actual.

Doble cola (Bicola)

La bicola o doble cola es un tipo de cola especial que permiten la insercin y eliminacin de elementos de ambos extremos de la cola. Puede representarse a partir de un vector y dos ndices, siendo su representacin ms frecuente una lista circular doblemente enlazada. Todas las operaciones de este tipo de datos tienen coste constante. fmod COLA-DOBLE {X :: TRIV} is protecting NAT . sorts ColaDobleNV{X} ColaDoble{X} . subsort ColaDobleNV{X} < ColaDoble{X} . ***generadores op crear : -> ColaDoble{X} [ctor] . op encolarIzq : X$Elt ColaDoble{X} -> ColaDobleNV{X} [ctor] . ***constructores op encolarDch : X$Elt ColaDoble{X} -> ColaDobleNV{X} . op extraerIzq : ColaDoble{X} -> ColaDoble{X} . op extraerDch : ColaDoble{X} -> ColaDoble{X} . ***selectores op frenteIzq : ColaDobleNV{X} -> X$Elt . op frenteDch : ColaDobleNV{X} -> X$Elt . vars E E1 E2 : X$Elt . vars C : ColaDoble{X} . vars CNV : ColaDobleNV{X} . eq encolarDch(E, crear) = encolarIzq (E, crear) . eq encolarDch(E1, encolarIzq(E2, C)) = encolarIzq(E2, encolarDch(E1, C)) . eq extraerIzq(crear) = crear . eq extraerIzq(encolarIzq(E, C)) = C . eq extraerDch(crear) = crear . eq extraerDch(encolarIzq(E, crear)) = crear . eq extraerDch(encolarIzq(E, C)) = encolarIzq(E, extraerDch(C)) . eq frenteIzq(encolarIzq(E, C)) = E . eq frenteDch(encolarIzq(E, crear)) = E . eq frenteDch(encolarIzq(E, CNV)) = frenteDch(CNV) . endfm

Aplicaciones colas

Las operaciones que se presentan en esta aplicacin son las siguientes: 1) Insertar: Accin a travs de la cual se pueden insertar nuevos elementos en la estructura de datos. Se presenta un dilogo para la introduccin del nuevo valor. 2) Eliminar mnimo: Elimina el nodo que contiene el menor valor de la estructura. 3) Cambiar capacidad mxima: Modifica el tamao mximo de la cola. Si el nuevo tamao es menor que el nmero actual de nodos, los nodos que no entren en la nueva cola se perdern. 4) Visualizacin: Permite mostrar la cola de prioridad con disposicin lineal o de rbol binario. 5) Vaciar cola de prioridad: Elimina todos los elementos de la estructura de datos.

Lista

as listas de definicin apenas se utilizan en la mayora de pginas HTML. Su funcionamiento es similar al de un diccionario, ya que cada elemento de la lista est formado por trminos y definiciones. La etiqueta <dl> crea la lista de definicin y las etiquetas <dt> y <dd> definen respectivamente el trmino y la descripcin de cada elemento de la lista.

Tipos de Operaciones con listas


El tipo lista (Apartado A.1.2) es una forma muy general y muy flexible para estructurar datos. Enseguida lo veremos con un ejemplo, pero presentaremos antes algunas definiciones de predicados sobre listas que son de utilidad general (a cada definicin le siguen algunos ejemplos de consultas): Primer elemento de una lista: primero([X|Cola],X). (Recurdese que la notacin [X|Cola] indica una lista cuya cabeza es el elemento X y cuya cola es la lista Cola , que puede contener cualquier nmero de elementos, o ser vaca. En lugar de Cola podramos haber utilizado cualquier otro nombre de variable, como Y , L , etc.).

El predicado ser verdadero cuando X tenga el mismo valor en cada una de sus apariciones: ?- primero([1,2,3],1). YES ?- primero([a|L],b). NO ?- primero([c,b,d,e,a],X). X=c ?- primero([X,b],a). X=a ?- primero([],X). NO ltimo elemento de una lista: ultimo([X],X). ultimo([Y|Z],X) :- ultimo(Z,X). (Es decir, si la lista slo contiene un elemento, se es el ltimo. Si contiene ms entonces tiene una cabeza y una cola, y el ltimo es el ltimo de la cola; de este modo, tenemos una definicin recursiva). ?- ultimo([c,b,d,e,a],X). X=a ?- ultimo([a,X],b). X=b ?- ultimo([],X). NO Miembro de una lista: miembro([X|Y],X). miembro([Y|Z],X) :- miembro(Z,X). (Un miembro de una lista es o bien su cabeza o bien un miembro de su cola). ?- miembro([c,b,d,e,a],X). X=c

X=b X=d X=e X=a Concatenacin de dos listas Este es un caso algo ms complicado. Se trata de definir un predicado, concatena(L1,L2,L3) , tal que sea verdadero si la lista L3 es el resultado de incluir los elementos de L2 a continuacin de los de L1. En el caso particular de que L1 sea vaca, L3 es simplemente igual a L2: concatena([],L,L). Si no es as, podemos asegurar que L3 tendr la misma cabeza que L1, y que su cola se obtendr concatenando la cola de L1 con L2: concatena([X|CL1],L2,[X|CL3]) :- concatena(CL1,L2,CL3). Las dos reglas definen completamente la relacin. Con ellas podemos hacer consultas como: ?- concatena([a,b],[b,c,d],X). X=[a,b,b,c,d] ?- concatena(X,[3,4],[1,2,3,4]). X=[1,2] Inversa de una lista inversa([],[]). inversa([X|CL],Linv) :inversa(CL,CLinv),concatena(CLinv,[X],Linv). (La inversa de una lista vaca es ella misma. La inversa de una lista es igual al resultado de concatenar la inversa de su cola con su cabeza). ?- inversa([1,2,3],X). X=[3,2,1]

Permutacin de una lista Una permutacin de una lista L1 es otra lista L2 con los mismos elementos de L1 en un orden diferente. Si la lista es vaca, o si consta de un solo elemento, su nica permutacin es ella misma. Si tiene varios elementos, sus permutaciones resultan de extraer un elemento, permutar el resto y colocar el elemento extraido a la cabeza de esta permutacin, repitiendo esto para todos los elementos. Definamos primero un predicado, menos_elem(X,L1,L2) , tal que si X es un elemento de L1, L2 es la misma lista L1 a la que se le ha quitado X. Si el elemento es la cabeza de L1, L2 ser la cola, y si no, ser igual a la resultante de extraer el elemento de la cola de L1; estas dos reglas tratan ambas situaciones: menos_elem(X,[X|L],L). menos_elem(X,[C|L],[C|LX]) :- menos_elem(X,L,LX). Podemos ahora definir permutacion(L1,L2) (L2 es una permutacin de L1) as:

permutacion([],[]). permutacion(L,[C|CL1]) :- menos_elem(C,L,LC), permutacion(LC,CL1). (No es necesario declarar permutacion([X],[X]). : el caso de que la lista slo tenga un elemento est ya incluido en la regla recursiva, con CL1=[]). ?- permutacion([a,b,c],X). X=[a,b,c] X=[a,c,b] X=[b,a,c] X=[b,c,a] X=[c,a,b] X=[c,b,a] Operaciones adicionales First: Da acceso al primer elemento de la lista Remove: Elimina un elemento concreto de la lista removeLast: Elimina el ltimo elemento de la lista size: Determina el nmero de elementos de la lista isEmpty: Determina si la lista est vaca contains: Determina si la lista contiene un elemento concreto last: Da acceso al ltimo elemento de la lista

removeFirst: Elimina el primer elemento de la lista

Representacin

Programacion Avanzada
a 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 yencapsulamiento.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

Conceptos avanzados

Las estructuras de control, los operadores y todas las utilidades propias de javascript que se han visto en los captulos anteriores, permiten crear scriptssencillos y de mediana complejidad. Sin embargo, para las aplicaciones ms complejas son necesarios otros elementos como las funciones y otras estructuras de control ms avanzadas, que se describen en este captulo. Igual que escribir en un idioma tiene una serie de normas de estilo, que, si se cumplen, hacen el texto ms comprensible y elegante, igual los lenguajes de programacin tienen una serie de normas de estilo, para hacer su cdigo ms elegante, comprensible e incluso fcil de depurar. en c++, las normas de estilo parten del diseo correcto de las clases, de la utilizacin correcta de la herencia y de la encapsulacin, y del aprovechamiento de todas las capacidades de c++.Simultneamente, veremos cmo los conceptos fundamentales de la programacin orientada a objetos, tales como la herencia y encapsulacin se implementan en c++.

Excepciones
Una excepcin se genera cuando ocurre un error en tiempo de ejecucin. En java es comn manejar a excepciones para controlar la ejecucin del programa. Es por ello la importancia de conocer como se puede detectar y manipular las diferentes excepciones.

Multithradindg
1) 2) 3) 4) 5) Capacidad del S.O de ejecutar la diferente parte de un programa(THREADS) simultanea mente. Contadores de programaciones independientes. Mecanismo de etiquetado para distinguir las intrusiones de diferentes hilos. Mecanismo que dispare el cambio del hilo. THREADSSeme

Proceso caracterizado por: 1) Un punto definido de comienzo 2) Una secuencia de ejecucin 3) Un punto de terminacin Los threads comparten memoria y datos entre ellos.

Fundamentos de la programacin avanza orientada a objetos

La programacin orientada a objetos, es, desde su raz, una forma de concebirn programa de computadora. Un programa es una serie de instrucciones que le indican a la computadora que hacer. La manera en que la poo ve a un programa escomo un conjunto de objetos que operan juntos en formas predefinidas para realizar tareas. En este artculo el autor hace una sucinta descripcin de los fundamentos de la programacin orientada a objetos, necesaria para aquellos que no poseen nociones sobre esta materia,y material de consulta para los que la conocen o dominan.

Utilizacin de estructuras dinmica de datos y operaciones de entrada/salidas.


Las estructuras dinmicas de datos son estructuras que cuya dimensin puede crecer o disminuir durante la ejecucin del programa. Una estructura dinmica de datos es una coleccin de elementos llamados nodos. Al contrario que un array, 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,colasno lineales: rboles, grafos las estructuras dinmicas de datos son de gran utilidad para almacenar datos del mundo real, que estn cambiando constantemente. Por ejemplo si tenemos almacenados en un array los datos de los alumnos de un curso, los cuales estn ordenados de acuerdo al promedio, para insertar un nuevo alumno seria necesario correr cada elemento un espacio: si en su lugar se utilizara una estructura dinmica de datos, los nuevos datos del alumno se pueden insertar fcilmente,

las declaraciones defunciones y la definicin de tipos usados por varias operaciones estndar de entrada y salida. Por motivos de compatibilidad, el lenguaje de programacin (derivado de c)tambin tiene su propia implementacin de estas funciones, que son declaradas con el archivo de cabecera cstdio

CONCLUSIN

Las estructuras dinmicas de datos son estructuras que cuya dimensin puede crecer o disminuir durante la ejecucin del programa. Una estructura dinmica de datos es una coleccin de elementos llamados nodos. Al contrario que un array, 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 son de gran utilidad para almacenar datos del mundo real, que estn cambiando constantemente. Por ejemplo si tenemos almacenados en un array los datos de los alumnos de un curso, los cuales estn ordenados de acuerdo al promedio, para insertar un nuevo alumno seria necesario correr cada elemento un espacio: Si en su lugar se utilizara una estructura dinmica de datos, los nuevos datos del alumno se pueden insertar fcilmente. En las estructuras dinmicas de datos se menciona pilas, la cual es una lista ordinal o estructura de datos, que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el rea de informtica debido a su simplicidad y ordenacin implcita de la propia estructura. 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. Otro de las estructura de datos es la colas, 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. Las colas se utilizan en sistemas informticos, transportes y operaciones de investigacin(entre otros), dnde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. Este tipo de estructura de datos abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas enlazadas. 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 o posterior. El principal beneficio de las listas enlazadas respecto a los array convencionales es que el orden delos 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. Una lista enlazada es un tipo de dato auto-referenciado porque contienen un puntero o link a 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.

BIBLIOGRAFA
www.monografias.com www.sildeshare.net www.buenastarea.con http://es.wikipedia.org/wiki/Geometr%C3%ADa_descriptiva

You might also like