Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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:
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.
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.
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
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
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:
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:
Un clasificador Random Forest utiliza una serie de rboles de decisin, con el fin de
mejorar la tasa de clasificacin.
Es posible validar un modelo utilizando pruebas estadsticas. Eso hace que sea
posible tener en cuenta la fiabilidad del modelo.
Referencias
Rokach,Lior,Maimon,O.(2008).Data mining with decisin tress:theory and
applications .world scientific pub co Inc.