LISTAS, PILAS Y COLAS
|
|
|
- María Castillo Núñez
- hace 8 años
- Vistas:
Transcripción
1 1 LISTAS, PILAS Y COLAS Muchos algoritmos requieren una representación apropiada de los datos para lograr ser eficientes Esta representación junto con las operaciones permitidas se llama Estructura de Datos Casi todas permiten inserciones arbitrarias Varían en como permiten el acceso a los miembros Algunas permiten acceso y borrado arbitrarios Otras imponen restricciones tales como acceso al elemento más recientemente insertado o al menos recientemente insertado Por qué se necesitan estructuras de datos? Permiten la reutilización de componentes: Se definen interfaces simples con las operaciones disponibles y las diversas aplicaciones pueden utilizarlas sin tener en cuenta su implementación Todas las estructuras son fáciles de implementar si no se tiene en cuenta el rendimiento: Se pueden colocar componentes baratas en la fase de depuración y luego se pueden reemplazar por implementaciones con mejor rendimiento en tiempo y/o espacio Cuadro comparativo de Estructuras de Datos Estructura de Datos Acceso Comentarios Pilas Sólo el más reciente cima, O(1) Muy rápidas Colas Sólo el menos reciente quitarprimero, O(1) Muy rápidas Listas enlazadas Cualquier momento O(N) Arboles de búsqueda Tablas hash Colas de prioridad Cualquier momento por nombre o rango. O(log N) Cualquier momento por nombre O(1) buscarmin, O(1) eliminarmin, O(log N) Caso medio, también en el peor caso Casi seguro Insertar es O(1) en promedio, O(log N) en el peor. LISTAS ENLAZADAS Listas enlazadas simples DEFINICIÓN: OPERACIONES BÁSICAS: Crear Insertar un elemento Borrar un elemento Es un secuencia ordenada de nodos, donde cada nodo conoce a su nodo sucesor. OTRAS DE UTILIDAD: Longitud de una lista Determinación de igualdad de dos listas Etc.
2 2 OPERACIONES CON LISTAS ENLAZADAS Recorrido: Esta operación consiste en visitar cada uno de los nodos que forman la lista Inserción: Esta operación consiste en agregar un nuevo nodo a la lista. Se pueden considerar tres casos: * Insertar un nodo al inicio * Insertar un nodo antes o después de cierto nodo. * Insertar un nodo al final. Borrado: La operación de borrado consiste en quitar un nodo de la lista, redefiniendo las ligas que correspondan. Se pueden presentar cuatro casos: * Eliminar el primer nodo. * Eliminar el último nodo. * Eliminar un nodo con cierta información. *Eliminar el nodo anterior o posterior al nodo cierta con inf. Búsqueda: Esta operación consiste en visitar cada uno de los nodos, hasta ubicar un nodo con determinada característica, devolviendo su posición ESPECIFICACION DE LISTAS ENLAZADAS SIMPLES Especificación Modelo: Para poder representar esta estructura se consideran las clases SNode : que representa un nodo de la lista. SList : representa la secuencia ordenada de nodos. La clase SNode tiene dos atributos : valor : es el valor del nodo. value siguiente : es una referencia al nodo sucesor. next La clase SList, simplemente tiene un único atributo que representa el primer nodo de la lista, los restantes nodos se pueden conocer por la referencia al sucesor. Protocolo de mensajes Los mensajes que debería responder un nodo podrían ser: valor : retorna el valor del nodo. siguiente : retorna el nodo sucesor Los mensajes que debería responder una lista podrían ser: longitud : retorna la longitud de la lista. agregarelemento : agrega un elemento a la lista. borrarelemento : elimina un nodo de la lista. Se puede implementar el protocolo de mensajes de una lista en un nodo, pero no es correcto desde el punto de vista de objetos, por que un nodo es parte de una lista y la clase Lista utiliza los servicios que da la clase Nodo para poder implementar sus métodos. Interfaz Está incompleta Faltan las operaciones de eliminación: Eliminar primero, eliminar el siguiente de un nodo objeto
3 3 Implementación de Nodo class SNode { Object value; next; SNode SNode() { value = null; next = null; SNode(Object avalue) { value = avalue; next = null; public SNode next() { return next; public void next(snode nextnode) { next = nextnode; Clase Lista Simple import SNode; class SList {SNode firstnode; SList() { firstnode = null; public void addelement(object value) { if(firstnode == null) firstnode = new SNode(value); else { SNode aux = firstnode; while(aux.next()!= null) aux = aux.next(); aux.next(new SNode(value)); public int size() { int size = 0; SNode aux = firstnode; while(aux!= null) { aux = aux.next(); size ++; return size; public Object elementat(int index) { if((index <= size()) && (index > 1)) { SNode aux = firstnode; while(index > 1) { aux = aux.next(); index ; return aux.value(); else return null;
4 4 public boolean equals(slist alist) { if(size() == alist.size()) {int index = 1; SNode aux = firstnode; boolean equals = true; while((aux!= null) && equals) {if((alist.elementat(index)).equals(aux.value()) ) {index ++; aux = aux.next(); else equals = false; return equals; return false; public boolean contains(object aobject) { SNode aux = firstnode; While ((aux!= null) && (! aobject.equals(aux.value()))) aux = aux.next(); if( aux == null) return false; else return true; public Object firstelement() { return firstnode.value(); public Object lastelement() { SNode aux = firstnode; while(aux.next!= null) aux = aux.next(); return aux.value(); Ver que quien lo invoca verificará que la lista no sea vacía public void atput(int index,object value) { if((index > 0) & (index <= size())) { SNode aux = firstnode; for(int i = 0; i < index; i++) aux = aux.next(); SNode newnode = new SNode(value); if( aux.next()!= null) newnode.next(aux.next()); aux.next(newnode); Notar que si en Snode se dispone un constructor que inicia los dos atributos directamente, la parte marcada puede codificarse como: aux.next (new Snode ( value, aux.next))
5 5 PILAS Estructura de datos en la cual el acceso está limitado al elemento más recientemente insertado El último elemento añadido a la pila es colocado en la cima, donde es accedido directamente, mientras que los elementos que llevan más tiempo son más difíciles de acceder Operaciones naturales: insertar (apilar) eliminar (desapilar) buscar (cima) Puede ser utilizada para dar vuelta a una lista de elementos Estructura LIFO: Last In, First Out (último en entrar, primero en salir) Interfaz pila: Métodos principales Object pop() :Elimina el elemento en la cima de la pila y devuelve el objeto que contiene void push(object elem) :Inserta un elemento en la cima de la pila Métodos auxiliares Object top() boolean isempty() int size() :Devuelve el elemento que hay en la cima de la pila sin eliminarlo de la misma. :Devuelve true si la pila está vacía y false en caso contrario :Devuelve el tamaño de la pila Implementación basada en Arrays public class ArrayStack implements Stack { //comienzo de la clase public static final int CAP=1000; private int capacity; private Object S[]; private int top=1; public ArrayStack(){this(CAP); public ArrayStack(int cap){ capacity=cap; S=new Object[capacity]; public int size() {return (top+1); public boolean isempty() {return (top<0); public Object top()throws StackEmptyException{ if (isempty()) throw new StackEmptyException("vacio"; return S[top]; public void push(object o) throws StackFullException { if (size()==capacity) throw new StackFullException("lleno"); S[++top]=o; public Object pop() throws StackEmptyException { Object el; if (isempty()) throw new StackEmptyException("vacio"; el=s[top]; S[top]=null; return el; //fin de la clase
6 6 Interfaz: Una Pila se puede definir como una subclase de la clase SList Para esta implementación se deberían redefinir los métodos heredados para dar el comportamiento adecuado Implementación alternativa: se utiliza el concepto de agregación. Jerarquía de clases de una Pila Implementación basada en Listas class Stack { SList list; Stack() { list = new SList(); public void push(object aobject) { list.addelement(aobject); public boolean isempty() { return list.isempty(); public Object pop() { if (! isempty()) { Object re = list.lastelement(); list.removeelement(re); return re; else return null; Cada operación debería tardar una cantidad constante de tiempo en ejecutarse, independientemente del número de elementos apilados ( Ej: Tomar el diario de hoy en una pila). Además es de O(1) ALGUNAS APLICACIONES DE PILAS: En COMPILADORES ( Análisis sintáctico de lenguajes de programación) Análisis de símbolos equilibrados Implementación de llamadas a procedimientos Evaluación de expresiones precedencia de operadores Análisis sintáctico I Símbolos equilibrados con posibles de anidamientos : ( ), begin end 1 Construir pila vacía 2 Leer símbolo hasta el final del fichero a Si es símbolo de apertura, apilarlo en la pila b Si es de terminación y la pila está vacía, error c En otro caso, desapilar. Si el desapilado no es el de apertura correspondiente, hay error 3 Al finalizar el fichero, si la pila no está vacía, hay error Ejemplo: { [ ( ) ( ) ] ( ) { [ ( [ ( [ { ( { { [ { [ { { { {
7 7 ESQUELETO DE LA CLASE AnalizadorJava PARA EL PROGRAMA DE COMPROBACIÓN DE SIMBOLOS EQUILIBRADOS Los objetos a apilar contienen un token y un número de línea II Implementación de llamadas a procedimientos Cuando se llama a un nuevo método, deben salvarse las variables locales del llamador (para no sobreescribir) y también la posición actual dentro de la rutina llamante. Caso particular : métodos recursivos III Evaluación de expresiones precedencia de operadores Empleando un mecanismo directo de evaluación: Notación postfija Ejemplo: ^ 5 * 3 * 6 / 7 ^ 2 ^ 2 Para evitar confusión: (1 2) ( ( ( 4 ^ 5) * 3 ) * 6 ) / ( 7 ^ ( 2 ^ 2 ) ) ) Con notación postfija: ^ 3 * 6 * ^ ^ / Pila La pila es utilizada por la máquina postfija para la evaluación También se emplea pila para convertir una expresión infija en postfija: Cuando se encuentra un operando, se pasa directo a la salida. Cuando se encuentra un operador, debe esperar a encontrar su segundo operando Los operadores pendientes se pueden almacenar de forma apropiada en una pila Entrada y salida de la pila: Paréntesis izquierdo: se apila directamente Paréntesis derecho: Desapilar símbolos hasta encontrar ( Operador: Desapilar todos los símbolos hasta encontrar un símbolo de menor precedencia o un símbolo de igual precedencia con asociatividad derecha. Luego apilarlo. Fin de entrada: Desapilar el resto de símbolos
8 8 Convertir una expresión infija en postfija: E. Infija: 1 2 ^ 3 ^ 3 ( * 6 ) * 7 E. Postfija: ^ ^ * + 7 * ^^ 4 5 6* + 7 * ^ ^ ^ ^ ^ ^ ( ( + ( * + ( * + ( * * 1 2 ^ 3 ^ 3 ( * 6 ) * 7 Paréntesis izquierdo: se apila directamente Paréntesis derecho: Desapilar símbolos hasta encontrar ( Operador: Desapilar todos los símbolos hasta encontrar un símbolo de menor precedencia o un símbolo de igual precedencia con asociatividad derecha. Luego apilarlo Fin de entrada: Desapilar el resto de símbolos Además de la pila se requiere una Tabla de Precedencias para decidir las eliminaciones de la pila Este análisis necesita un tiempo lineal y un solo recorrido de la entrada, utilizando dos pilas
9 9 COLAS Estructura de datos en la cual se puede encontrar directamente y/o eliminar el elemento más antiguo y solo se puede insertar después del elemento más reciente Se puede identificar un frente y un final Operaciones naturales: insertar (al final) eliminar (al frente) primero (acceder elemento de frente) Ejemplos: trabajos que se mandan a impresión. Estructura FIFO: First In, First Out (primero en entrar, primero en salir) Interfaz: Una Cola se puede definir como class Queue import SNode; class Queue {SNode lastnode; SNode firstnode; Queue () { firstnode = lastnode = null; public void pushelement(object value) { if(firstnode == null) lastnode =firstnode = new SNode(value); else { lastnode = lastnode.next= new SNode(value)); Todas las operaciones básicas sobre las colas tardan un tiempo O (1) Colas Dobles Es una estructura similar a una cola, excepto que está permitido el acceso por ambos extremos La clase Cola Doble puede plantearse como subclase de Cola. Los métodos de Cola Doble son: Insertar al principio Insertar al final Eliminar al principio Eliminar al final Insertar al final y Eliminar al principio, son heredados Observar que la eliminación de nodos al final de una lista no está soportada de manera eficiente
10 10 IMPLEMENTACIONES DE PILAS Y COLAS Ambos tipos de estructuras pueden implementarse empleando un vector o una lista enlazada En ambos casos las operaciones se ejecutan en tiempo constante, son muy rápidas En otros lenguajes de programación, la implementación basada en vectores emplea más memoria pero menos tiempo que la implementación con listas enlazadas En Java no es relevante, debido al tratamiento de los objetos con referencias ( cada elemento de un vector es solo una referencia) OTROS TIPOS DE LISTAS ENLAZADAS Listas Circulares Listas enlazadas dobles Listas Circulares dobles Listas con cabecera ( para cada caso anterior) Listas enlazadas ordenadas LISTAS CIRCULARES Una desventaja de las listas lineales: dado un puntero p a un nodo de la lista, no se puede alcanzar cualquier otro nodo que preceda al nodo p Ventajas: Si se modifica la estructura : el next en el último nodo contiene un puntero al primer nodo, en lugar de ser nulo ( Lista Circular) Desde cualquier nodo de la lista es posible llegar a cualquier otro nodo de la lista No hay ningún nodo natural com primero o último. Convención: El puntero externo de la lista apunta al último nodo Pueden utilizarse para representar pilas o colas La pila puede considerarse como un puntero al último nodo de la lista circular, siendo que el primer nodo es la parte superior de la pila Al utilizar una lista circular, una cola puede especificarse mediante un solo puntero al nodo final de la cola y el siguiente nodo es el primero Pensar en la implementación de una cola con lista circular y escribir los métodos push y remove Algunas particularidades de listas circulares. Ejemplo: Si la lista tiene un solo nodo, este nodo tiene siguiente y por tanto debe reverse la operación EliminarSiguiente
11 11 LISTAS CON NODO CABECERA Una lista con nodo de cabecera es aquella en la que el primer nodo de la lista contendrá en su campo dato algún valor que lo diferencie de los demás En el caso de utilizar listas con nodo de cabecera, usaremos el apuntador CAB para hacer referencia a la cabeza de la lista. Un lista con nodo cabecera satisface el requerimiento: cada nodo que contiene un elemento tiene un nodo anterior. Esto simplifica las operaciones de eliminación e inserción, pues no hay que tratar los casos especiales para listas vacías. Se simplifica el código y aumenta la velocidad a cambio de un despreciable aumento de espacio ( Para algunos TRUCO SUCIO: celdas ficticias) En una lista circular, la ejecución del recorrido desde un nodo cualquiera requiere saber cuando se ha recorrido toda la lista. Esto puede lograrse con otro puntero externo estacionario ( al primer nodo de la lista) o bien trabajando con un nodo cabecera. LISTAS DOBLES ENLAZADAS En las listas enlazadas simples es fácil avanzar, pero la implementación de retroceder no puede ser eficiente con una sola referencia siguiente. En algunas aplicaciones esto es crítico ( Editores de texto) Se puede modificar la estructura de manera que cada nodo tenga una referencia al siguiente y al anterior (Lista doblemente enlazada), con o sin cabecera No obstante, éstas no soportan de forma eficiente algunas operaciones. LISTAS DOBLES ENLAZADAS CIRCULARES Se puede modificar para que principio y fin estén conectados entres sí ( Lista dob. enl. Circular) Así se tienen recorridos y búsquedas en forma sencilla en ambos sentidos Ya no se usa nil para decidir si un avance lleva al final de la lista Notar que eliminar un nodo aux de la lista puede codificarse como: aux. prev.next = aux. next; aux.next. prev = aux.prev LISTAS ENLAZADAS ORDENADAS Es una lista en la que los elementos se guardan en forma ordenada. La diferencia fundamental en esta estructura es la rutina de inserción También se modifica la búsqueda
12 12 Un modelo CONSIDERACIONES DE MODELADO Iteradores: patrón de diseño de software que encapsula métodos que permiten recorrer los elementos de una colección La diferencia fundamental en esta estructura es la rutina de inserción Una lista es un contenedor de objetos, la cual almacena cada elemento en una posición y mantiene esas posiciones dispuestas en orden lineal. Un contenedor es una estructura que almacena y organiza una colección de objetos, llamados los elementos del contenedor y proporciona acceso a los mismos a través de los métodos de un TAD. Pilas, Colas y Listas son ejemplos de contenedores La clase que implementa la interfaz Lista, si se desea un rápido acceso a la información, contendrá dos referencias, que apunten al primer y último nodo de la lista respectivamente. Para terminar de hacer simétrica la representación se podría añadir un nodo cabecera y un nodo final para evitar que la lista se quede vacía. ITERADORES Una operación típica a realizar con una lista de elementos es recorrerlos en orden, uno de cada vez, por ejemplo para buscar un elemento específico o para sumar los valores asociados. Un iterador es un patrón de diseño de software que abstrae el proceso de recorrer una colección de elementos. Un iterador consta de una secuencia S, una posición actual en S y una forma de avanzar a la siguiente posición convirtiéndola en su posición actual. Java proporciona una versión simplificada de un iterador en el paquete java.util, el cual define dos métodos: public interface Iterador public boolean hasnext(); public Object next() {se convierte en la posición actual
13 13 Al trabajar con una clase iteradora, la clase Lista no mantendría ninguna noción de posición actual y solamente contendría los métodos que tratan a la lista como una unidad, como esvacio() y anular(). public interface IteradorLista extends Iterador public void modificar(object o) throws... public void insertar(object o); public void suprimir() throws... A continuación se muestra un método que utiliza un iterador para visualizar los elementos de la lista l. Se puede observar que la iteración sobre las listas se realiza de una forma muy natural. public static void visualizar (ListaIter l) { System.out.print("Los elementos de la lista son: "); Iterador itr = l.iteradorlista(); while (itr.hasnext()) System.out.print((Integer) itr.next() + " "); Se declara itr como un iterador que puede acceder a la lista enlazada l. Esto requiere el uso de un constructor iteradorlista(). La primera vez que se llama a next(), se obtiene el primer elemento de l. Para implementar un iterador es necesario escribir su código y definir e implementar una clase. Esta clase no es visible al usuario. Es suficiente con que el usuario conozca la interfaz Iterador y la especificación del iterador, como se ha mostrado en el ejemplo anterior. public class ListaEnlazada implements ListaIter private Nodo cabecera; public ListaEnlazada()... public boolean esvacio(). public void anular() ; public IteradorLista iteradorlista() { return new IteradorListaEnlazada(this); Este método devuelve un objeto IteradorListaEnlazada, lo cual es correcto ya que es subtipo de IteradorLista que a su vez es subtipo de Iterador. A continuación se muestra la clase IteradorListaEnlazada. Se implementa como una clase privada y estática, anidada dentro de otra clase. Al estar declarada dentro de otra clase es posible acceder a los atributos y métodos privados de la clase ListaEnlazada. Esto es apropiado puesto que IteradorListaEnlazada es realmente parte de la implementación de la clase ListaEnlazada. private static class IteradorListaEnlazada implements IteradorLista private ListaEnlazada lalista; private Nodo actual; public IteradorListaEnlazada(ListaEnlazada l).. //métodos de la interfaz Iterador public boolean hasnext() public Object next() //métodos de la interfaz IteradorLista public void modificar(object o) public void insertar(object e)... public void suprimir()throws Lo que se ha mostrado es un ejemplo simplificado de iterador. Se podría haber utilizado un iterador más sofisticado que permitiera recorrer la secuencia en los dos sentidos, usando para ello los métodos hasprevious() y previous(). Además, puede ser necesario, en ocasiones, tener definidos varios iteradores. En ese caso se recomienda no usar el iterador mientras se modifica la secuencia. Jerarquía de herencia para los TAD secuencias Hemos presentado tres tipos de secuencias (vectores, listas y listas con iteradores) que han dado lugar a la definición de diferentes interfaces y clases. Estas definiciones pueden redefinirse agrupando los métodos y organizándolos en una jerarquía de herencia.
14 14 LISTAS ORTOGONALES En este tipo de lista se utiliza para representar matrices. Los nodos contienen cuatro apuntadores. Uno para apuntar al nodo izquierdo (li),otro para apuntar al derecho(ld), otro al nodo inferior(lb) y por último un apuntador al nodo superior(la). UNA APLICACIÓN DE LISTAS ENLAZADAS: MATRICES ESPARCIDAS Matriz rala o esparcida: matriz cuyo contenido está formado en su mayoría por ceros Alternativa empleando listas enlazadas: Una lista enlazada circular que represente una columna dummy, con tantos elementos como filas tenga la matriz. Cada elemento apunta al primer elemento de la fila respectiva Una lista para una fila dummy, con tantos elementos como columnas tenga la matriz. Cada elemento apunta al primer elemento de la columna respectiva Cada nodo de las listas dummy sirven como un nodo de encabezamiento para la lista de fila o de columna Los nodos de las listas que tienen los elementos de la matriz contienen: id fila, idcolumna, valor, next de fila, next de columna El primer nodo de la lista fila dummy coincide con el primer nodo de columna dummy y sirve como puntero de la nueva estructura Una estructura donde los nodos aparecen en más de una lista y contiene más de un puntero se denomina: LISTA MULTIENCADENADA Tener en cuenta que aquí los elementos no se acceden por referencia directa como en los arreglos. Los procedimientos son elborados.
Programación de sistemas Pilas y Colas
Programación de sistemas Pilas y Colas Departamento de Ingeniería Telemática 1 Contenidos Pilas (stacks) Colas (queues) Colas dobles (deques double-ended queues) 2 Pilas Estructura de datos lineal Inserción
Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño
Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos
Estructuras de datos: Pilas, Colas, Listas
Estructuras de datos: Pilas,, Facultad de Informática Universidad de A Coruña Pilas,, Table of Contents Pilas 1 Pilas 2 3 Pilas,, Table of Contents Pilas 1 Pilas 2 3 Pilas,, Pilas Acceso limitado al último
Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna
Ingeniería en Computación Unidad de Aprendizaje: Estructura de Datos Unidad de Competencia II: Estructuras de Datos Lineales Marzo 2015 M. en C. Edith Cristina Herrera Luna ESTRUCTURAS DE DATOS Propósito
Tema 8- Implementación de Pila, Cola y. Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés. Representación Eficaz de una EDA
Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés Índice general: 1. Representación Eficaz de una EDA Lineal 2. Implementación
Estructuras de Datos. La pila es un objeto dinámico en constante cambio.
21 Capítulo 2. LA PILA (STACK). 2.1 Definición y ejemplos. Una pila es un conjunto ordenado de elementos en el cual se pueden agregar y eliminar elementos de un extremo, el cual es llamado el tope de la
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
TAD: Pila. TALLER: TAD Pila
TALLER: TAD Una pila (stack) es un conjunto de elementos del mismo tipo que solamente puede crecer o decrecer por uno de sus extremos. Una pila también se la conoce con el nombre de estructura de tipo
Estructura de datos Colas
Estructura de Datos Estructura de datos Colas Temario Unidad II 2.1 Definición y operaciones 2.2 Implementación estática 2.3 Implementación dinámica 2.4 Colas de prioridad 2.5 Casos de estudio 1 Definición
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México
Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos
A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -
Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En
TAD CONJUNTOS Y MULTICONJUNTOS
TAD CONJUNTOS Y MULTICONJUNTOS INTRODUCCIÓN Qué es un conjunto? Un conjunto en matemática es una colección de objetos. Los objetos no mantienen ninguna relación aparente entre ellos y tampoco están obligados
LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Unidad Nº V Listas Enlazadas
Instituto Universitario Politécnico Santiago Mariño Unidad Nº V Listas Enlazadas Lista Enlazadas Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta
Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)
Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)
Tema 6. Gestión dinámica de memoria
Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, [email protected] Estructuras de datos y de la
Tema 2 Tipos abstractos de datos. 2.2 Pila de números enteros
Tema 2 Tipos abstractos de datos. 2.2 Pila de números enteros Especificación de TAD s. TAD Pila de Enteros. desapilar 2 7 3 5 apilar Cima de la Pila Cima de la Pila Definición: Estructura de Datos que
Tema 5. Estructura de datos Pila
Tema 5. Estructura de datos Pila http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la
Estructuras de Datos y Algoritmos TDA LISTA
Estructuras de Datos y Algoritmos TDA LISTA Metáfora del TDA (repaso) Conjunto de operaciones forman una pared forman una interfase entre los programas y la estructura de datos Diseño de una Clase (repaso)
11. PILAS Introducción Fundamentos
11. PILAS 11.0 INTRODUCCIÓN... 25 11.1 FUNDAMENTOS... 25 11.2. REPRESENTACIÓN DE LAS PILAS EN C++... 26 Implementación mediante estructuras estáticas... 31 Implementación mediante cursores... 35 Implementación
Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
1. Leer el primer número y almacenarlo en la raíz del árbol. 2. Repetir hasta encontrar un duplicado o el árbol esté vacío.
Capítulo 6 Árboles 6.1 Introducción Esta no es una estructura lineal, deben conocerlos de matemáticas finitas. Ejemplos: la tabla de contenido de un libro, los que se hacen en los torneos, los arboles
Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas
Pilas, Colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Quiz: STL Quiz: STL Standard Template Library (STL) std::vector - Arreglo dinámico,
16 Análisis sintáctico I
2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y
Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y distribución. Listas Enlazadas Estructuras de datos dinámicas
Tabla de Símbolos. Programación II Margarita Álvarez
Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados
Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Tabla de Símbolos. Programación II Margarita Álvarez
Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados
Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08
Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2007/08 Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte. Manipular todos los objetos
Tema 7.- Fundamentos de la Programación Orientada a Objetos
Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).
PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07
PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 Ejercicio 1. Un indice de referencias cruzadas de las palabras que aparecen en un texto es una tabla por palabras y, por cada
Tema 4 Colecciones en Java. Programación Orientada a Objetos Curso 2013/2014
Tema 4 Colecciones en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Colecciones (paquete java.util): Interfaz Collection Interfaz List Interfaz Set InterfazMap Copia de
Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010
Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del
3.3 Conceptos Básicos del Lenguaje Java
3.3 Conceptos Básicos del Lenguaje Java Conjunto de Caracteres Java utiliza Unicode, un conjunto de caracteres de 16 bits Java permite leer ASCII de 7-bit o Latin-1, conviertiéndolo a Unicode Son pocos
Procesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2
Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3
Para la Implementación Dinámica de listas: Se usa la asignación dinámica de memoria mediante punteros o referencias.
Tema: Listas simple encadenadas. Manejo de pilas y colas dinámicas Objetivos: Que los alumnos logren Capacidad para usar, en forma eficiente los diagramas UML básicos. Habilidad para identificar las distintas
NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS
1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
El método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol
Árboles Las listas enlazadas, pilas y colas son estructuras de datos lineales (es decir, secuencias). Un árbol es una estructura de datos bidimensional no lineal, con propiedades especiales. Los nodos
Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
UNIDAD 9. DATOS COMPLEJOS PILAS
UNI 9. TOS OMPLEJOS PILS Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por uno de los extremos. omo consecuencia, los elementos de una pila serán eliminados
Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas
Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico
Clase 26. Introducción a los árboles. Árboles
Clase 26 Introducción a los árboles Árboles Árbol es el nombre que se le da a un grupo versátil de estructuras de datos. Se pueden utilizar para implementar un número de interfaces abstractas, incluida
Tema: Algoritmos para la ruta más corta en un Grafo.
Programación IV. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Algoritmos para la ruta más corta en un Grafo. Objetivos Específicos Definir el concepto de camino
Un. VI. Generador de código intermedio.
Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes
Capitulo V Listas Enlazadas
Capitulo V Listas Enlazadas Muere lentamente, quien abandona un proyecto antes de iniciarlo, no preguntando de un asunto que desconoce o no respondiendo cuando le indagan sobre algo que sabe. Evitemos
Introducción a Java LSUB. 30 de enero de 2013 GSYC
Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
Construcciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas
Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación
Tema 5 Tabla de Símbolos
Traductores, Compiladores e Intérpretes 1 Tema 5 También se la llama tabla de nombres o tabla de identificadores y tiene dos funciones principales: - Efectuar chequeos semánticos. - Generación de código.
7.4. UTILIDADES DE LAS PILAS
7.4. UTILIDADES DE LAS PILAS o Llamadas a subprogramas o Paso de programas recursivos a iterativos o Un caso especial, quick_sort iterativo. o Equilibrado de símbolos o Tratamiento de expresiones aritméticas
Árboles binarios de búsqueda
Clase 27 Árboles binarios de búsqueda Árboles binarios de búsqueda En la clase anterior, definimos el concepto de árbol binario de búsqueda como un árbol binario de nodos que contienen una clave ordenada
PILAS Fundamentos
Alg. y Estr. Datos-I / Fund. Progr.-II (R. Ferrís, J. Albert) 11 PILAS 11.1 Fundamentos En este tema y en el siguiente se analizarán las estructuras de datos lineales pilas y colas. Las pilas y las colas
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal
Grafos. Amalia Duch Brown Octubre de 2007
Grafos Amalia Duch Brown Octubre de 2007 Índice 1. Definiciones Básicas Intuitivamente un grafo es un conjunto de vértices unidos por un conjunto de líneas o flechas dependiendo de si el grafo es dirigido
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Tema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y
El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.
Definición más precisa de los patrones Un patrón del diseño nomina, abstrae y identifica los aspectos claves de un diseño común para crear un diseño orientado a objetos reutilizable. Son descripciones
Alonso Ramírez Manzanares Computación y Algoritmos 10.03
Recursividad mat-151 1 Ejercicio de recursión: dibujando una regla Queremos dibujar las marcas de diferentes tamaños de una regla. Marcas grandes cada 1/2 cm, marcas más pequeñas cada 1/4 cm... hasta una
INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005
Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas
Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º
1. Ejercicio (1 punto) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 Describir cual es el estado del array A después de cada paso principal del algoritmo: InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8,
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO INTRODUCCION A LA PROGRAMACION Y COMPUTADORAS 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS
INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) 1. INTRODUCCIÓN INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Las computadoras fueron diseñadas o ideadas como una herramienta mediante la cual
DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006
ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los
Ejercicios resueltos de programación
Ejercicios resueltos de programación Mariano Fernández López Escuela Politécnica Superior, Universidad San Pablo CEU 18 de marzo de 2015 Índice general 1. Implementación de un método recursivo 2 1.1. Enunciado.............................
CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
CONTENIDO PRÓLOGO XIX CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS 1.1 Introducción 2 1.2 Resolución de problemas mediante la computadora 3 1.3 Conceptos de programación orientada a objetos
Análisis amortizado El plan:
Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras
Capítulo. Listas, pilas y colas en C. Contenido. Introducción
Capítulo 32 Listas, pilas y colas en C Contenido Listas enlazadas Clasificación de listas enlazadas Operaciones en listas enlazadas Inserción de un elemento en una lista Búsqueda de un elemento de una
GUÍA DE ESTILO EN JAVA
GUÍA DE ESTILO EN JAVA Formato de líneas 1. No usar más de 80 caracteres por línea (imagen de tarjeta). De esta forma se pueden visualizar las líneas completas con un editor de texto o en una hoja impresa
Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24
Contenido Prólogo... vii Capítulo 1. Algoritmos y estructuras de datos... 1 Introducción... 2 1.1. Tipos de datos... 2 1.1.1. Tipos primitivos de datos... 3 1.1.2. Tipos de datos compuestos y agregados...
Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.
Tutorial de C# Delegados y Eventos Por: Óscar López, M.Sc. [email protected] DELEGADOS Delegados Son unos objetos que implícitamente extienden de System.Delegate y definen un tipo referencia soportado
EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET...
APRENDERAPROGRAMAR.COM EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET... (CU00916C) Sección: Cursos Categoría: Lenguaje de
Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Sintaxis de Java Sintaxis Define las reglas que determinar el uso de palabras clave, operadores y variables para construir y evaluar expresiones.
El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:
El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un
Generación de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.
Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
ASIGNATURA: ESTRUCTURA DE DATOS II
ASIGNATURA: ESTRUCTURA DE DATOS II Cód: 31-206 Régimen cuatrimestral Horas reloj semanales: 4 Horas teóricas: 15 Horas prácticas: 45 Horas totales: 60 Carrera: Sistemas 2016 FUNDAMENTOS: Un tipo de dato
Prueba N o 1. Programación II
UNIVERSIDAD ANDRÉS BELLO 1 Prueba N o 1 Programación II Profesores: José Luis Allende y Carlos Beyzaga. Fecha: 10 de Septiembre de 2013 Nombre: Nota: Instrucciones: Coloque su nombre a todas las hojas.
Apuntes elaborados por: Aaron Asencio, Eduardo Quevedo, Raquel López Revisado por: Javier Miranda el???
Apuntes elaborados por: Aaron Asencio, duardo Quevedo, Raquel López Revisado por: Javier Miranda el??? Tema 9: rafos Los grafos no son más que la versión general de un árbol, es decir, cualquier nodo de
Trabajo Práctico Nº 10 Estructuras Dinámicas: Pila y Cola.
Trabajo Práctico Nº 10 Estructuras Dinámicas: Pila y Cola. Objetivo: Interiorizarnos en la creación y en el manejo de estructuras Dinámicas (Pila y Cola) definidas por desarrollador. PILA Una PILA es una
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
14. ÁRBOLES. 14.1 Fundamentos y terminología básica
Ricardo Ferrís / Jesús Albert Algoritmos y estructuras de datos I 14. ÁRBOLES 14.1 FUNDAMENTOS Y TERMINOLOGÍA BÁSICA... 79 14.2. ÁRBOLES BINARIOS... 81 14.3. FUNDAMENTOS... 82 14.3. OPERACIONES CON ÁRBOLES
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2
324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:
Tema 3. Análisis de costes
Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información
Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
