Está en la página 1de 10

Universidad Nacional Experimental de

Guayana
Vicerrectorado Academico
Coordinacion General de Pregrado
Proyecto de Carrera

INGENIERIA

INDUSTRIAL
Unidad Curricular Computacion

Estructura de datos

Profesor
Alumna
Luis Extrao
Mayra Patete

C.I 27729912

PUERTO ORDAZ,JULIO 2016

PILA
es una lista ordenada 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 enentrar, 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 , 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 retirarpermite 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:

Evaluacin de expresiones en notacin postfija (notacin polaca inversa).

Reconocedores sintcticos de lenguajes independientes del contexto

Implementacin de recursividad

Operaciones
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. (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 sin elementos o falso en caso de que contenga
uno. (empty).

Implementacin
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.

Estructuras de datos relacionadas


El tipo base de la estructura FIFO (el primero en entrar es el primero en salir)es la cola, y la
combinacin de las operaciones de la pila y la cola es proporcionado por el deque. Por
ejemplo, el cambio de una pila en una cola en un algoritmo de bsqueda puede cambiar el
algoritmo de bsqueda en primera profundidad (en ingls, DFS) por una bsqueda en
amplitud (en ingls, BFS). Una pila acotada es una pila limitada a un tamao mximo
impuesto en su especificacin.

Seguridad
La seguridad a la hora de desarrollar software usando estructuras de datos de tipo pila es un
factor a tener en cuenta debido a ciertas vulnerabilidades que un uso incorrecto de stas
puede originar en la seguridad de nuestro software o en la seguridad del propio sistema que lo
ejecuta. Por ejemplo, algunos lenguajes de programacin usan una misma pila para
almacenar los datos para un procedimiento y el enlace que permite retornar a su invocador.
Esto significa que el programa introduce y extrae los datos de la misma pila en la que se
encuentra la informacin crtica con las direcciones de retorno de las llamadas a
procedimiento, supongamos que al introducir datos en la pila lo hacemos en una posicin
errnea de manera que introducimos datos de mayor tamao al soportado por la pila
corrompiendo as las llamadas a procedimientos, provocaramos un fallo en nuestro
programa. sta tcnica usada de forma maliciosa (es similar, pero en otro mbito al buffer
overflow) permitira a un atacante modificar el funcionamiento normal de nuestro programa y
nuestro sistema, y es al menos una tcnica til si no lo evitamos en lenguajes muy populares
como el ejemplo C++.

.Cola

Una 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
enlazadas.e 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 impl dementa en lenguajes orientados a
objetos mediante clases, en forma de listas

Usos concretos de la cola[editar]


La particularidad de una estructura de datos de cola es el hecho de que slo podemos
acceder al primer y al ltimo elemento de la estructura. As mismo, los elementos slo se
pueden eliminar por el principio y slo se pueden aadir por el final de la cola.

Ejemplos de colas en la vida real seran: personas comprando en un supermercado,


esperando para entrar a ver un partido de bisbol, esperando en el cine para ver una pelcula,
una pequea peluquera, etc. La idea esencial es que son todos lneas de espera.

Informacin adicional
En caso de estar vaca, borrar un elemento sera imposible hasta que no se aade un nuevo
elemento. A la hora de aadir un elemento podramos darle una mayor importancia a unos
elementos que a otros (un cargo VIP) y para ello se crea un tipo de cola especial que es la
cola de prioridad. (Vercola de prioridad).

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.

Implementaciones

Colas en Pascal
Clase PscColas, Matriz[]:Cadena, Posicin, Valor:Entero
Privado:
Proc Comenzar
ReDim Matriz,1
Posicin = 0
Valor = 0
FinProc
Proc Terminar
Borrar Matriz

FinProc
Proc Longitud:Entero
Devolver Lmite(Matriz)
FinProc
Proc ReDimencionarLaCola
ReDim Preservar Matriz, LongMat(Matriz) + 1
FinProc
Pblico:
Proc Encolar(Contenido:Cadena)
Si Posicin = LongMat(Matriz) Entonces
ReDimencionarLaCola
Matriz[Posicin] = Contenido
Posicin = Posicin + 1
FinProc
Proc DesEncolar
Si Neg(Valor >= Lmite(Matriz)) Entonces Valor = Valor
+ 1
FinProc
Proc FrenteCola:Cadena
Devolver Matriz[Valor]
FinProc
Proc FondoCola:Cadena
Devolver Matriz[Lmite(Matriz)]
FinProc

Tipos de colas

Colas circulares (anillos): en las que el ltimo elemento y el primero estn unidos.

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:
1. Aadir un campo a cada nodo con su prioridad. Resulta conveniente mantener la cola
ordenada por orden de prioridad.
2. Crear tantas colas como prioridades haya, y almacenar cada elemento en su cola.

Bicolas: 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

Arboles de decision
Una herramienta comn que se utiliza en diferentes tcnicas de resolucin de
problemas es el rbol de decisin. Para usar esta herramienta debes trazar un rbol de
decisin con diferentes ramas y hojas que apunten a todos los factores que rodean una
situacin en particular. Dependiendo de la situacin y del resultado deseado, existen
varios tipos de rboles que puedes usar.

Tipos
Los rboles de decisin utilizados en la minera de datos son de dos tipos principales:

rboles de clasificacin es cuando el resultado predicho es la clase a la que


pertenecen los datos.

rboles de regresin es cuando el resultado predicho se puede considerar un


nmero real (por ejemplo, el precio de una casa, o la longitud de un paciente de la
estancia en un hospital).

El trmino rboles de Clasificacin y Regresin (ACR) es un trmino genrico utilizado


para referirse a ambos de los procedimientos anteriores, introducido por primera vez
por Breiman et al.3 Los rboles utilizados para la regresin y los rboles utilizados para la

clasificacin tienen algunas similitudes - pero tambin algunos diferencias, tales como el
procedimiento utilizado para determinar donde dividir. 3
Algunas tcnicas, a menudo llamados mtodos conjuntoshbridos, construyen ms de un rbol
de decisin:

Bagging, un mtodo de conjunto, construye mltiples rboles de decisin haciendo


repetidamente remuestreo de los datos de entrenamiento con sustitucin, y votando los
rboles para hallar una prediccin de consenso.4

Un clasificador Random Forest utiliza una serie de rboles de decisin, con el fin de
mejorar la tasa de clasificacin.

Los rboles Impulsados se pueden utilizar para problemas de regresin y de


clasificacin.5 6

Rotation Forest En el que cada rbol de decisin es entrenado aplicando


primero anlisis de componentes principales(ACP) en un subconjunto aleatorio de las
caractersticas de entrada.7

Ventajas de los rboles de Decisin


Entre otros mtodos de minera de datos, los rboles de decisin tienen varias ventajas:

Fcil de entender e interpretar. Las personas son capaces de comprender los


modelos de rboles de decisin despus de una breve explicacin.

Requiere poca preparacin de los datos. Otras tcnicas a menudo requieren la


normalizacin de datos, utilizacin de variables ficticias necesitan ser creados y valores en
blanco deben ser eliminados.

Capaz de manejar tanto datos numricos y categorizados. Otras tcnicas son


generalmente especializadas en el anlisis de conjuntos de datos que tienen slo un tipo
de variable. (Por ejemplo, las normas de relacin slo se pueden utilizar con variables
nominales, mientras que las redes neuronales pueden ser utilizados slo con variables
numricas.)

Utiliza un modelo de caja blanca. Si una situacin dada es observable en un modelo


entonces la condicin se explica fcilmente por la lgica booleana. (Un ejemplo de un
modelo de caja negro es una red neural artificial ya que la explicacin de los resultados es
difcil de entender.)

Es posible validar un modelo utilizando pruebas estadsticas. Eso hace que sea
posible tener en cuenta la fiabilidad del modelo.

Robusto. Se desempea bien incluso si sus suposiciones son violadas por el


verdadero modelo a partir del cual se generaron los datos.

Funciona bien con grandes conjuntos de datos. Grandes cantidades de datos


pueden ser analizados utilizando recursos informticos estndar en un plazo razonable.

Referencias
Rokach,Lior,Maimon,O.(2008).Data mining with decisin tress:theory and
applications .world scientific pub co Inc.

También podría gustarte