Estructuras de datos Elementales Cpiis Integrantes CCASA CONDORI

  • Slides: 74
Download presentation
Estructuras de datos Elementales Cpiis

Estructuras de datos Elementales Cpiis

 • Integrantes: » CCASA CONDORI Alfredo » TIKA GONZALES Nefi Humberto » CRUZ

• Integrantes: » CCASA CONDORI Alfredo » TIKA GONZALES Nefi Humberto » CRUZ HUACARPUMA Ruben

Objetivo central SER CAPAZ DE ANALIZAR, COMPRENDER Y RESOLVER UNA AMPLIA VARIEDAD DE PROBLEMAS

Objetivo central SER CAPAZ DE ANALIZAR, COMPRENDER Y RESOLVER UNA AMPLIA VARIEDAD DE PROBLEMAS COMPUTACIONALES, DISEÑANDO E IMPLEMENTANDO SOLUCIONES EFICIENTES Y DE CALIDAD, COMO RESULTADO DE LA APLICACIÓN DE UN PROCESO METÓDICO

Resolver problemas ¿Qué clase de problemas tenemos? ¿Cómo es el proceso para resolver un

Resolver problemas ¿Qué clase de problemas tenemos? ¿Cómo es el proceso para resolver un problema? ¿Cuándo se dice que la solución es eficiente y de calidad?

Problemas, programas, algoritmos y estructuras de datos PROBLEMA Algoritmos + Estructuras de datos PROGRAMA

Problemas, programas, algoritmos y estructuras de datos PROBLEMA Algoritmos + Estructuras de datos PROGRAMA • Problema: Conjunto de hechos o circunstancias que dificultan la consecución de algún fin. • Algoritmo: Conjunto de reglas finito e inambiguo. • Estructura de datos: Disposición en memoria de la información. • Programa: Algoritmos + Estructuras de datos.

Ejemplos de problemas

Ejemplos de problemas

Ejemplos de problemas

Ejemplos de problemas

Ejemplos de problemas

Ejemplos de problemas

Buscador de Internet

Buscador de Internet

Buscador de Internet

Buscador de Internet

Buscador de Internet • ¡¡¡Cuatro millones de páginas en un cuarto de segundo!!! •

Buscador de Internet • ¡¡¡Cuatro millones de páginas en un cuarto de segundo!!! • Problema: ¿cómo estructurar la información necesaria para realizar las consultas rápidamente? ¿Qué algoritmos de búsqueda utilizar?

Estructuras de datos • Son formas de almacenar data de tal forma que su

Estructuras de datos • Son formas de almacenar data de tal forma que su uso sea eficiente. • Decidir qué estructura de datos usar en cuáles casos resulta usualmente en programas más eficientes. • Las estructuras de datos definen en que forma están interrelacionados los elementos que estas almacenan. Asimismo, especifican qué operaciones pueden realizarse sobre ellas. Entre las operaciones más comunes están: – – – Búsqueda Almacenamiento Eliminación.

Estructuras de datos • • Una de las decisiones más importantes cuando se va

Estructuras de datos • • Una de las decisiones más importantes cuando se va a implementar un algoritmo es la elección de la ED más apropiada. Los elementos claves a considerar típicamente son: Espacio en memoria. Tiempo de ejecución. Para los mismo datos unas EDs requieren más espacio en memoria que otras. Por otra parte, para las mismas operaciones algunas EDs tienen asociados algoritmos más eficientes que otras. En resumen y como era de esperarse, las EDs y los algoritmos están íntimamente relacionados ya que: Los algoritmos operan sobre EDs. Las EDs típicamente sirven como entrada a los algoritmos. Los algoritmos frecuentemente arrojan como salida EDs.

Estructuras de datos Basicas

Estructuras de datos Basicas

Introducción a las Estructuras de Datos Una estructura de datos es una colección de

Introducción a las Estructuras de Datos Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ellas. Datos Simples: Estructura de daos simples Estructuras de Datos: Estáticas Estructura de datos básicas Dinámicas Estructura de datos especiales Estándar Entero Real Carácter lógico -Arrays -Registros -Ficheros Listas (Pilas/Colas) Listas enlazadas Árbols -Conjuntos -Cadenas

Registros • Un registro es un tipo de dato definido por el programador en

Registros • Un registro es un tipo de dato definido por el programador en el que se puede especificar la estructura interna. El programador da nombre al nuevo tipo de dato y a cada uno de los campos que lo componen, y especifica el tipo de dato que puede ocupar cada uno de los campos.

Estructura de datos simples Implementación en Pascal Type nombre = Record Nombre. Campo 1

Estructura de datos simples Implementación en Pascal Type nombre = Record Nombre. Campo 1 : Tipo. Dato 1 ; Nombre. Campo 2 : Tipo. Dato 2 ; . . . End; donde nombre es el identificador elegido para el registro y Nombre. Campo 1, Nombre. Campo 2, . . . son los identificadores elegidos para los distintos campos. Tipo. Dato 1, Tipo. Dato 2, . . . son la especificación del tipo de dato que se va a almacenar en cada uno de los campos.

Estructura de datos simples Ejemplo en Pascal Type Fecha = Record mes : 1.

Estructura de datos simples Ejemplo en Pascal Type Fecha = Record mes : 1. . 12; dia : 1. . 31; agno : Integer ; End; Var alta , baja : Fecha; Acceso alta. mes = 8; alta. dia = 25; Alta. agno = 2003;

Dato Estructurado Los datos estructurados se caracterizan por el hecho de que con un

Dato Estructurado Los datos estructurados se caracterizan por el hecho de que con un nombre (identificador de variable estructurada) se hace referencia a un grupo de casillas de memoria. Es decir, un dato estructurado tiene varios componentes. Cada uno de los componentes básicos puede ser a su vez un dato simple o estructurado. Sin embargo, los componentes básicos (los de nivel más bajo) de cualquier tipo estructurado son datos simples. Se ejemplifica un dato estructurado en la siguiente figura :

Arreglos unidimensionales: Los Vectores Un array es un conjunto finito y ordenado de elementos

Arreglos unidimensionales: Los Vectores Un array es un conjunto finito y ordenado de elementos homogeneos. índice nota 1 nota 2 nota 3 0 1 2 nota 4 3 nota(n)…. ……. .

Arreglos Un arreglo es una conexión de posiciones de almacenamiento de datos donde cada

Arreglos Un arreglo es una conexión de posiciones de almacenamiento de datos donde cada uno tiene el mismo tipo de dato y el mismo orden, cada posición de almacenamiento de un arreglo es llamado un elemento. Con los arreglos podemos construir vectores, matrices y además estructuras repetitivas de datos Un arreglo de una solo división, es un arreglo que tiene solamente un subíndice. Un subíndice es un número encerrado entre corchetes a continuación del nombre del arreglo. Como ejemplo se puede utilizar la siguiente línea de programa: float producto[10];

Estructuras de datos Basicas Estructura de una Arreglo Los arreglos pueden ser clasificados en:

Estructuras de datos Basicas Estructura de una Arreglo Los arreglos pueden ser clasificados en: • Simples o Unidimensionales • Bidimensionales • Multidimencionales mas de 2 dimensiones.

Estructuras de datos Basicas • Declaración de un arreglo Los arreglos en C se

Estructuras de datos Basicas • Declaración de un arreglo Los arreglos en C se declaran de la siguiente forma. • Tipo base int, float, char. • Nombre del arreglo [dimensión]. • Ejemplo: int arreglo [20]

Matrices Mi_Matriz Nombre de la variable 9 5 6 2 4 8 3 Posición

Matrices Mi_Matriz Nombre de la variable 9 5 6 2 4 8 3 Posición : 3, 1 Contenido : Mi_vector[3, 1] = 9

Matrices - Declaraciones • Ejemplos de declaraciones: • Ej 1: type T_matriz = array[

Matrices - Declaraciones • Ejemplos de declaraciones: • Ej 1: type T_matriz = array[ 1. . 10, 1. . 10 ] of real; var Matriz: valores;

Estructura de datos especiales Listas • Son estructuras de datos secuenciales de 0 o

Estructura de datos especiales Listas • Son estructuras de datos secuenciales de 0 o más elementos de un tipo dado almacenados en memoria. Son estructuras lineales, donde cada elemento de la lista, excepto el primero, tiene un único predecesor y cada elemento de la lista, excepto el último, tiene un único sucesor. • El número de elementos de la lista se llama longitud. Si tiene 0 elementos se llama lista vacía. • En una lista podemos añadir nuevos elementos o suprimirlos en cualquier posición.

Estructura De Tatos Especiales Tipos de listas • No enlazada (array) • Enlazada (objetos)

Estructura De Tatos Especiales Tipos de listas • No enlazada (array) • Enlazada (objetos) • Doblemente enlazada • Circular A la vez pueden estar: – Ordenada – No ordenada

Operaciones sobre Listas Algunas operaciones son: –Inserción –Supresión –Recorrido –Ordenación –Búsqueda –Consulta

Operaciones sobre Listas Algunas operaciones son: –Inserción –Supresión –Recorrido –Ordenación –Búsqueda –Consulta

Estructuras de datos especiales Lista Colección homogénea de datos, ordenados según su posición en

Estructuras de datos especiales Lista Colección homogénea de datos, ordenados según su posición en ella, tal que cada elemento tiene un predecesor (excepto el primero) y un sucesor (excepto el último) y los operadores asociados son: • • Insertar Localizar Recuperar Suprimir_dato Primero (Fin) Listar

Estructuras de datos especiales • Listas enlazadas contiguas • Para insertar ó borrar un

Estructuras de datos especiales • Listas enlazadas contiguas • Para insertar ó borrar un elemento requiere un número de operaciones que en el caso peor está en el orden del tamaño de la lista. • La desventaja es que tiene un tamaño limitado. Clase CLista Atributos inicio // inicio es de tipo clase CNodo Métodos constructor destructor agregar. Inicio( valor ) agregar. Final( valor ) … f. Clase

Estructuras de datos especiales

Estructuras de datos especiales

Estructuras de datos especiales Listas Ligadas La finalidad de las listas ligadas, como en

Estructuras de datos especiales Listas Ligadas La finalidad de las listas ligadas, como en el caso de los arreglos, es almacenar organizadamente datos del mismo tipo. Las listas ligadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con dos campos: datos y enlace La lista ligada es una colección de nodos ordenada según su posición, tal que cada uno de ellos es accedido mediante un campo enlace del nodo anterior.

Insertar al inicio de la lista 1. Crear Nodo 2. Se asigna dirección del

Insertar al inicio de la lista 1. Crear Nodo 2. Se asigna dirección del nodo contenida en raíz al nuevo nodo. 3. Se asigna dirección del nuevo nodo a raíz.

Estructuras de datos especiales Listas Doblemente Ligadas: • Cuando se necesita recorrer la estructura

Estructuras de datos especiales Listas Doblemente Ligadas: • Cuando se necesita recorrer la estructura en ambos sentidos se puede definir el tipo nodo de manera que el campo enlace tenga dos punteros, uno que apunte al sucesor y otro al predecesor. Lista doblemente ligadas

Estructuras de datos especiales Listas Circulares Son una variación habitual de las listas doblemente

Estructuras de datos especiales Listas Circulares Son una variación habitual de las listas doblemente ligadas son las lista s doblemente ligadas en las cuales, el último nodo tiene como sucesor al primero, y el primero tiene como predecesor al último.

 • Representación de Listas Circulares Lista circulares

• Representación de Listas Circulares Lista circulares

 • REPRESENTACION EQUEMATICA DE UNA LISTA DOBLEMENTE ENLAZADA head Mudo “Centinela”

• REPRESENTACION EQUEMATICA DE UNA LISTA DOBLEMENTE ENLAZADA head Mudo “Centinela”

Estructuras de datos especiales Listas Multireferenciadas: Son un tipo de estructura especialmente interesante son

Estructuras de datos especiales Listas Multireferenciadas: Son un tipo de estructura especialmente interesante son las listas en las cuales el nodo que rige la estructura no contiene la información directamente sino un puntero a la misma. La información se almacena en una variable referenciada a la que se añade un contador que lleva la cuenta de cuantos punteros (listas) están apuntando en cada momento la mencionada información.

Estructuras de datos especiales PILAS (LIFO último en entrar, primero en salir) Los elementos

Estructuras de datos especiales PILAS (LIFO último en entrar, primero en salir) Los elementos se añaden y suprimen por un único extremo: tope o cabeza de la pila. Una pila es una estructura dinámica homogéneo al que sólo se tiene acceso por la cabeza o cima de la pila, los operadores básicos son Meter y Sacar elementos de la pila, y los operadores auxiliares asociados son: Iniciar_pila Pila_Vacia Pila_Llena Consultar_cima_Pila El carácter dinámico de la pila se debe a que el tamaño de la pila es variable, independientemente de la implementación.

Estructuras de datos especiales Lista en la que las adiciones y extracciones se hacen

Estructuras de datos especiales Lista en la que las adiciones y extracciones se hacen por un extremo. Problema: Extraer elementos por el final de la lista y conocer el tope (n). El tiempo empleado para estas operaciones en tiempo constante. Clase CPila Atributos inicio // inicio es de tipo clase CNodo tope Métodos constructor destructor agregar. Inicio( valor ) agregar. Final( valor ) … f. Clase

Estructuras de datos especiales COLAS (FIFO: primero en entrar - primero en salir) Una

Estructuras de datos especiales COLAS (FIFO: primero en entrar - primero en salir) Una cola es una estructura dinámica homogénea con acceso de tipo FIFO al que sólo se tiene acceso al principio de la cola para sacar elementos, y al final de la misma para meterlos. Los elementos se añaden por un extremo, denominado final de la cola, pero en este caso se suprimen por el otro, conocido como principio de la cola. Aplicaciones típicas de colas son todas aquellas en las que debamos sincronizar la velocidad de llegada de datos con la velocidad de procesamiento. Los operadores básicos asociados son Meter y Sacar elementos de la cola, y los operadores auxiliares asociados son: Inicia_cola: Cola_Vacia: Avanzar_Cola_Llena:

¿qué es un árbol? • Un árbol puede definirse de forma recursiva como: –

¿qué es un árbol? • Un árbol puede definirse de forma recursiva como: – Una colección de nodos que puede ser vacía, o que en su defecto consiste de un nodo raíz R y un número finito de estructuras tipo árbol T 1, …, Tk, llamados subárboles, los cuales son disjuntos y sus respectivos nodos raíz están conectados a R. • Por tanto, un árbol es una estructura no secuencial.

Ejemplo de un árbol A B E C F G D H I

Ejemplo de un árbol A B E C F G D H I

Nomenclatura básica • Todo nj, exceptuando el raíz, está conectado exclusivamente a otro nodo

Nomenclatura básica • Todo nj, exceptuando el raíz, está conectado exclusivamente a otro nodo nk donde: – nj es el padre de nk (e. g. , B es el padre de E) – nk es uno de los hijos de nj (e. g. , E es un hijo de B) – Nodos con el mismo padre son “hermanos” – Nodos sin hijos son llamados “hojas” • Si existe una trayectoria del nodo nj al nodo nk entonces: – nj es antecesor de nk (e. g. , A es antecesor de E) – nk es descendiente de nj (e. g. , E es descendiente de E)

Más nomenclatura • La trayectoria del nodo n 1 a nk se define como

Más nomenclatura • La trayectoria del nodo n 1 a nk se define como la secuencia de nodos n 1, n 2, …, nk, tal que ni es el padre de ni+1. Entonces: – La longitud de una trayectoria es el número de ramas recorridas, es decir, K-1. – Nivel o profundidad del nodo ni es la longitud de la trayectoria que va del nodo raíz a ni. • C tiene profundidad 1, mientras que I tiene profundidad 2. – La altura del nodo ni es longitud de la trayectoria más larga de ni a una hoja. • G tiene altura 0, B altura 1 y A (raíz) altura 2.

Implementación typedef struct { Tipo. Dato dato; struct Nodo. Arbol *hijo 1; struct Nodo.

Implementación typedef struct { Tipo. Dato dato; struct Nodo. Arbol *hijo 1; struct Nodo. Arbol *hijo 2; : struct Nodo. Arbol *hijo. N; } Nodo. Arbol; typedef struct { Tipo. Dato dato; struct Nodo. Arbol *hijo; struct Nodo. Arbol *hermano; } Nodo. Arbol; • Dos formas de implementar: – Tener un apuntador a cada uno de los hijos. Problema cuando NO sabemos el número de hijos. – Mantener los hijos de un nodo en una lista ligada. No hay ninguna restricción sobre número de hijos. • Así, un nodo del árbol consiste en un dato, un apuntador al primer hijo y un apuntador a la lista de hermanos.

Ejemplo de representación A B E C F G D H I • ¿cómo

Ejemplo de representación A B E C F G D H I • ¿cómo lo podemos recorrer? – ¿cómo hacemos búsqueda en anchura? – ¿cómo hacemos búsqueda en profundidad?

Árboles binarios • Un árbol binario en un árbol en el cual cada nodo

Árboles binarios • Un árbol binario en un árbol en el cual cada nodo puede tener como máximo dos hijos. • Recursivamente un árbol binario puede definirse como: un árbol vacío, o un nodo raíz con un subárbol izquierdo y Raíz Árbol izquierdo Árbol derecho

Implementación typedef struct Nodo. Arbol *Arbol; struct Nodo. Arbol { Tipo. Datol dato; struct

Implementación typedef struct Nodo. Arbol *Arbol; struct Nodo. Arbol { Tipo. Datol dato; struct Nodo. Arbol *izq; struct Nodo. Arbol *der; }; • Cada nodo del árbol consiste en: – Un dato (cualquier cosa) – Un apuntador al hijo izquierdo – Un apuntador al hijo derecho • Inicialmente el nodo raíz apunta a NULL. • En las hojas del árbol, los apuntadores hacia los hijos izquierdo y derecho son NULL.

Recorridos estándar • Preorder: – Procesar nodo – Procesar árbol izquierdo – Procesar árbol

Recorridos estándar • Preorder: – Procesar nodo – Procesar árbol izquierdo – Procesar árbol derecho • Inorder: – Procesar árbol izquierdo – Procesar nodo – Procesar árbol derecho • Postorder: – Procesar árbol izquierdo – Procesar árbol derecho – Procesar nodo void inorder(Arbol *nodo) { if (nodo != NULL) { inorder(nodo->izq); visitar(nodo); inorder(nodo->der); } } void postorder(Arbol *nodo) { if (nodo != NULL) { postorder(nodo->izq); postorder(nodo->der); visitar(nodo); } }

Ejemplo de recorridos A B D C E F G Preorden: A, B, D,

Ejemplo de recorridos A B D C E F G Preorden: A, B, D, E, C, F, G Inorden: D, B, E, A, F, C, G Postorden: D, E, B, F, G, C, A

4. 1. 2. Terminología de grafos • Camino de un vértice w 1 a

4. 1. 2. Terminología de grafos • Camino de un vértice w 1 a wq: es una secuencia w 1, w 2, . . . , wq V, tal que todas las aristas (w 1, w 2), (w 2, w 3), . . . , (wq-1, wq) A. • Longitud de un camino: número de aristas del camino = nº de nodos 1. • Camino simple: aquel en el que todos los vértices son distintos (excepto el primero y el último que pueden ser iguales). • Ciclo: es un camino en el cual el primer y el último vértice son iguales. En grafos no dirigidos las aristas deben ser diferentes. • Se llama ciclo simple si el camino es simple.

4. 1. 2. Terminología de grafos • Un subgrafo de G=(V, A) es un

4. 1. 2. Terminología de grafos • Un subgrafo de G=(V, A) es un grafo G’=(V’, A’) tal que V’ V y A’ A. • Dados vértices v, w, se dice que están conectados si existe un camino de v a w. • Un grafo es conexo (o conectado) si hay un camino entre cualquier par de vértices. • Si es un grafo dirigido, se llama fuertemente conexo. • Una componente (fuertemente) conexa de un grafo G es un subgrafo maximal (fuertemente) conexo.

4. 1. 2. Terminología de grafos • Un grafo es completo si existe una

4. 1. 2. Terminología de grafos • Un grafo es completo si existe una arista entre cualquier par de vértices. • Para n nodos, ¿cuántas aristas tendrá un grafo completo (dirigido o no dirigido)? • Grado de un vértice v: número de arcos que inciden en él. • Para grafos dirigidos: – Grado de entrada de v: nº de aristas con <x, v> – Grado de salida de v: nº de aristas con <v, x>

4. 1. 3. Operaciones elementales con grafos • • • Crear un grafo vacío

4. 1. 3. Operaciones elementales con grafos • • • Crear un grafo vacío (o con n vértices). Insertar un nodo o una arista. Eliminar un nodo o arista. Consultar si existe una arista (obtener la etiqueta). Iteradores sobre las aristas de un nodo: para todo nodo w adyacente a v hacer acción sobre w para todo nodo w adyacente de v hacer acción sobre w Mucho menos frecuente

4. 2. Representación de grafos • Representación de grafos: – Representación del conjunto de

4. 2. Representación de grafos • Representación de grafos: – Representación del conjunto de nodos, V. – Representación del conjunto de aristas, A. 2 1 3 4 5 • Ojo: las aristas son

4. 2. Representación de grafos • Representación del conjunto de aristas, A. – Mediante

4. 2. Representación de grafos • Representación del conjunto de aristas, A. – Mediante matrices de adyacencia. – Mediante listas de adyacencia. M 1 2 3 1 0 0 1 2 1 0 0 3 1 1 0 4 0 0 1 5 0 1 1 3 4 4 0 0 0 5 0 0 0 1 2 3 4 5 2 3 1 4 3 5 4 2 1 5 5

4. 2. 1. Matrices de adyacencia tipo Grafo. No. Etiq= array [1. . n,

4. 2. 1. Matrices de adyacencia tipo Grafo. No. Etiq= array [1. . n, 1. . n] de 0. . 1 • Sea M de tipo Grafo. No. Etiq, G= (V, A). • M[v, w] = cierto (v, w) A 1 • • 2 M 1 2 3 4 5 1 0 3 2 1 0 1 3 0 1 0 5 4 4 1 0 1 Grafo no dirigido matriz simétrica: M[i, j] = M[j, i]. Resultado: se desperdicia la mitad de 5 la memoria. 0 1 0 1 0 1 0

4. 2. 1. Matrices de adyacencia • Grafos etiquetados: tipo Grafo. Etiq[E]= array [1.

4. 2. 1. Matrices de adyacencia • Grafos etiquetados: tipo Grafo. Etiq[E]= array [1. . n, 1. . n] de E • El tipo E tiene un valor infinito, para el caso de no existir arista. 1 • M 1 2 3 4 3 0 1 3 2 4 2 2 2 3 4 2 3 0 4 2 ¿Cómo serían los iteradores: para todo adyacente a, y adyacente 4 de? ¿Y contar número de aristas? • ¿Cuánto es el tiempo de ejecución?

Aplicaciones de Estructura de datos Elementales

Aplicaciones de Estructura de datos Elementales

Aplicaciones en Colas • Las Colas también se utilizan en muchas maneras en los

Aplicaciones en Colas • Las Colas también 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).

Aplicaciones en Colas

Aplicaciones en Colas

Aplicaciones en Colas Si esta trabajando en una sistema multiusuario, cuando le dice a

Aplicaciones en Colas Si esta trabajando en una sistema multiusuario, cuando le dice a la computadora que ejecute un programa concreto, el Sistema Operativo añade su petición a su "cola de trabajo.

Aplicaciones en Colas

Aplicaciones en Colas

Aplicaciones en Colas • Cuando su petición llega al frente de la cola, el

Aplicaciones en Colas • Cuando su petición 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 demás. El sistema operativo mantiene colas para peticiones de imprimir, leer o escribir en cada uno de estos dispositivos.

Aplicaciones en Pilas • Las pilas son utilizadas ampliamente para solucionar una amplia variedad

Aplicaciones en Pilas • Las pilas son utilizadas ampliamente para solucionar una amplia variedad de problemas. Se utiliza en compiladores, sistemas operativos y en programas de aplicación. Su implementación se puede hacer mediante Arrays Y Mediante listas enlazadas. Un ejemplo de sus aplicaciones podrían ser los siguientes: Ø Los Navegadores en Internet almacenan en una pila las direcciones de los sitios más recientemente visitados. Ø Los editores de texto proporcionan normalmente un botón deshacer que cancela las operaciones de edición recientes y restablece el estado anterior del documento

Aplicaciones en Listas enlazadas Una de las aplicaciones es en de las listas enlazadas

Aplicaciones en Listas enlazadas Una de las aplicaciones es en de las listas enlazadas se aplica a los punteros.

Aplicaciones en Arboles • Estructura de datos no lineales llamada árbol. Esta estructura se

Aplicaciones en Arboles • Estructura de datos no lineales llamada árbol. Esta estructura se usa principalmente para representar datos con una relación jerárquica entre sus elementos, como por ejemplo registros, árboles genealógicos, y tablas de contenidos

Aplicaciones en Colas

Aplicaciones en Colas

Aplicaciones en Colas

Aplicaciones en Colas