Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Incluye los temas:
•Listas
•Listas Enlazadas
•Listas Circulares
•Listas Doblemente Enlazadas
•Pilas
•Colas
Creado por Ing. Alvaro Enrique Ruano
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad V: Métodos de Ordenamiento
Retícula ISIC-2010-224: Programa: AED-1026/2016
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Incluye los temas:
•Listas
•Listas Enlazadas
•Listas Circulares
•Listas Doblemente Enlazadas
•Pilas
•Colas
Creado por Ing. Alvaro Enrique Ruano
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad V: Métodos de Ordenamiento
Retícula ISIC-2010-224: Programa: AED-1026/2016
Estructura de Datos - Unidad III Estructuras Lineales
Material de Clase de la Asignatura Estructura de Datos
Ingeniería en Sistemas Computacionales
Estructuras de datos en C++
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Listas
1. PNFSI
Asignatura: Desarrollo de Software
Tema: Listas
Ing. Zamantha González Díaz Abril, 2008
2. Tema: Listas
Contenido
• Tipo de Dato Abstracto (TDA).
• Listas lineales.
• Tipos de implementaciones de listas.
• Pilas y Colas.
• Implementación en C++
3. Tipo de Dato Abstracto
Un Tipo de Dato Abstracto (TDA) se define como
un modelo matemático con un conjunto de
operaciones que se definen sobre este modelo.
Define un tipo de dato e incluye la descripción de
todo el comportamiento asociado al dato.
No está asociado a ninguna implementación. El
implementar un TDA supone la traducción de las
especificaciones del TDA en las sintaxis de un
lenguaje de programación en particular.
4. Tipo de Dato Abstracto
Al implementar un TDA en la POO, se debe
encapsular toda la lógica de almacenamiento y lograr
que la comunicación sea a través de los métodos de
acceso que se definen en la interfaz pública de la
implementación del TDA.
6. TDA Lista Lineal
Una lista lineal es un conjunto de N nodos l1, l2, …
ln, con n 0, cuyas propiedades estructurales
esenciales incluyen sólo las posiciones lineales
(unidimensionales) relativas de los nodos; para ella
se definen operaciones como las siguientes:
• Tener acceso a un nodo.
• Insertar y eliminar un nodo en la lista.
• Combinar dos o más listas en una.
• Dividir una lista en dos o más listas.
• Determinar la cantidad de nodos de la lista.
• Ordenar la lista de acuerdo a un criterio.
• Buscar un elemento bajo una condición.
7. TDA Lista Lineal
Aclaraciones:
• n = 0 denota a la lista vacía, o sea, una lista que no
tiene elementos.
• Si n > 0, l1 es el primer nodo.
• Si 1 < k < n, lk es precedido por el nodo lk-1 y
seguido por el nodo lk+1.
• Si n > 0, IN es el último nodo.
8. TDA Lista Lineal
Una misma definición de un TDA puede conllevar a
implementaciones diferentes en dependencia de las
necesidades, así como de las características del
lenguaje en el que se va a desarrollar dicha
implementación.
Por su forma de almacenamiento, la lista lineal se
puede implementar en una de las siguientes
disposiciones:
• Secuencial
• Enlazada
9. Lista Secuencial
Una de las formas más simples de implementación
de este TDA es usando un arreglo unidimensional.
Todos los elementos de la lista se almacenan en
posiciones de memoria consecutivas. Por eso se
habla de disposición secuencial en la memoria de la
computadora.
A la lista se le conoce como lista secuencial.
10. Lista Secuencial
...
1 2 3 4 5 N
Índice del último Cantidad física
nodo de la lista de elementos
del arreglo
11. Ventajas y desventajas
Ventajas
Con esta disposición se accede a cualquier elemento
de la estructura de datos en tiempo constante.
Desventajas
Al asignar el arreglo en tiempo de compilación debe
establecerse un límite a priori sobre el número de
elementos que pueden ser almacenados en las
listas.
Para inserciones y eliminaciones frecuentes hay que
hacer corrimientos costosos.
12. Lista enlazada
En una lista enlazada se asigna memoria para el
almacenar los elementos de la lista conforme se va
necesitando, es decir a medida que se añaden o
insertan los elementos, y se conectan los elementos
de la lista con punteros.
La memoria es liberada cuando ya no se necesita
más un elemento en la lista.
Esquemáticamente una lista enlazada se representa
por una secuencia de nodos conectados por enlaces.
13. Lista enlazada
primero
Cada nodo está conectado al siguiente por un solo
enlace, a esta estructura de datos se llama lista
simplemente enlazada.
14. Lista enlazada
•Un nodo de una lista simplemente enlazada
contiene dos campos: datos (contiene un elemento
de la lista) y siguiente (almacena un enlace al
siguiente nodo de la lista).
•El campo siguiente del último nodo contiene un
símbolo especial que indica el final de las lista.
•Se accede a la lista por medio de un apuntador al
primer elemento y solo se puede recorrer la lista en
un sentido, del primer nodo al último nodo.
15. Lista doblemente enlazada
•…
primero
Cada nodo contiene tres campos: un campo que
almacena el elemento de la lista y los otros dos
almacenan los enlaces a los nodos precedente y
siguiente de la lista.
Se usan punteros nulos para marcar ambos
extremos de la lista.
17. Lista doblemente enlazada circular
•…
primero
El campo siguiente del último nodo apunte al primer
nodo de la lista y el campo anterior del primer nodo
apunte al último nodo de la lista.
18. Ventajas y desventajas
Ventajas
No es preciso conocer la cantidad de elementos en
tiempo de compilación.
Ni las inserciones ni las eliminaciones implican
realizar corrimientos de los elementos de la lista.
Desventajas
No permite el acceso directo a un elemento arbitrario
de la lista. Para acceder al i-ésimo elemento,
debemos recorrer la lista, comenzando por el primer
nodo, hasta llegar al elemento deseado.
19. primero
Pila
(tope)
Una pila (stack) es un conjunto dinámico
que obedece al orden LIFO.
La pila es un caso particular de lista en la
que todas las inserciones y extracciones de
elementos se realizan por un solo extremo,
llamado el tope de la pila.
20. Operaciones en pilas
Estas operaciones reciben nombres especiales:
•Insertar (x). Inserta x en S. (Apilar o Push).
•Tope. Devuelve el elemento que fue insertado más
recientemente en S. (Cima).
•Eliminar. Devuelve el elemento que fue insertado
más recientemente y lo elimina. (Desapilar o Pop).
•Vacía. Devolver si la pila está vacía.
21. Cola
primero
Una cola (queue) es un conjunto dinámico
que obedece al orden FIFO.
La cola es un caso particular de lista para
la que todas las inserciones se realizan
siempre por un extremo y las extracciones
se realizan siempre por el extremo opuesto.
último
22. Operaciones en colas
Estas operaciones reciben nombres especiales:
•Insertar (x). Inserta x en la cola.
•Primero. Devuelve el elemento que lleva más
tiempo en la cola.
•Eliminar. Devuelve el elemento que lleva más
tiempo en la cola y lo elimina. (Avanzar)
•Vacía. Devolver si la cola está vacía.
23. Ejemplos
Un ejemplo de pila lo constituye el mecanismo que
establecen los lenguajes de programación para
garantizar las llamadas anidadas a subprogramas
dentro de una aplicación.
Un ejemplo de cola es la cola de impresión en el
sistema operativo Windows. Cada usuario de una red
de Windows coloca sus trabajos de impresión y el
sistema lo imprime en el mismo orden en que fueron
insertados en la cola de impresión.
24. Cola secuencial
...
0 1 2 3 4 N-1
Índice del Índice del
primer elemento último elemento
Cantidad física
de elementos
25. Cola secuencial
•No hay correspondencia entre la posición del
último nodo y la cantidad de nodos de la cola.
•La condición de cola llena y de cola vacía, no se
pueden verificar haciendo uso del índice del
arreglo.
26. Cola circular
0 1
N-1 2
.
. 3
13 4
12 5
11 6
10 7
9 8
La cola circular propone tratar el arreglo como un
círculo donde cuando aLength se hace igual a aSize,
el siguiente elemento es el de índice 0. Esto permite
utilizar todos los espacios que quedan libres en el
arreglo luego de realizar eliminaciones de nodos.
27. Implementación en C++
•TBaseList
•TSeqList •TLinkedList
•TGSeqList •TGLinkedList
•TDoubleList •TCircLinked
•TNode
•TDoubleCirc
•TDoubleNode
28. Facilidades de los lenguajes
Los lenguajes de programación proporcionan
utilidades que permiten al desarrollador crear
estructuras de datos.
Objetivo: proporcionar clases, interfaces y
algoritmos para utilizar las estructuras de una
manera estandar.