Actividad Grupal
Actividad Grupal
Actividad Grupal
Carrera:
ingeniería en sistemas y computación
Asignatura:
Algoritmo computacional
Titulo o tema:
Estructura de datos
Nombre del estudiante:
Geury Batista Bernabel
David Muñoz
Crismeilin Luna
Matricula:
22-1-SIST-1-001
22-SIST-1-039
22-sist-1-004
INVESTIGAR-RESPONDER-DAR EJEMPLO ................................................................................................ 3
Geury Batista Bernabel: 22-SIST-1-001 ................................................................................................... 3
¿Qué son las estructuras de datos y para qué sirven? ....................................................................... 3
Mencione y describa tipo estructura de datos ................................................................................... 3
¿Cuáles son las 5 estructuras de datos? ............................................................................................. 4
¿Cómo es la estructura de datos?....................................................................................................... 5
¿Cuáles son las estructuras de datos más comunes? ......................................................................... 5
¿Qué es un tipo de dato abstracto (TDA)?.......................................................................................... 5
Mencione los TDA básicos .................................................................................................................. 6
¿Qué es un árbol? ............................................................................................................................... 6
¿Qué es un arreglo? ............................................................................................................................ 7
David Muñoz: 22-SIST-1-039 ................................................................................................................... 8
¿Qué son las colas? ............................................................................................................................. 8
¿Qué es un índice? .............................................................................................................................. 9
¿Qué es una pila? .............................................................................................................................. 10
¿Qué es una lista enlazada? .............................................................................................................. 10
Las pilas como estructuras de datos LIFO se refiere a: ..................................................................... 11
¿Gráficamente cómo se representa un grafo? ................................................................................. 11
¿Qué tipo de estructura de datos es un árbol? ................................................................................ 12
Crismeilin Luna: 22-sist-1-004 .............................................................................................................. 12
¿Qué es el encapsulamiento en POO? .............................................................................................. 12
¿A qué se le llama Herencia en POO? ............................................................................................... 12
¿Para qué sirven los métodos getters (get) y setters (set)? ............................................................. 13
¿Qué es el ordenamiento por selección? ......................................................................................... 14
Menciona 5 operaciones que se puedan realizar en una cola: ........................................................ 14
¿En qué consiste el ordenamiento de burbuja? ............................................................................... 15
¿Cuáles son los tipos de métodos de ordenamiento? ...................................................................... 15
¿Qué es un árbol binario? ................................................................................................................. 16
RESPONDER (F) O VERDADERO(V) ........................................................................................................ 17
Síntesis .................................................................................................................................................. 18
Geury Batista Bernabel: 22-SIST-1-001 ............................................................................................. 18
David Muñoz: 22-SIST-1-039 ............................................................................................................. 18
Crismeilin Luna: 22-sist-1-004........................................................................................................... 19
INVESTIGAR-RESPONDER-DAR EJEMPLO
En el ámbito de la informática, las estructuras de datos son aquellas que nos permiten, como
desarrolladores, organizar la información de manera eficiente, y en definitiva diseñar la
solución correcta para un determinado problema.
Homogéneas (todos los datos que componen la estructura son del mismo tipo) o
Arreglos (Arrays): Un arreglo es una estructura de datos que almacena elementos del mismo
tipo de forma contigua en la memoria. Los elementos se acceden mediante un índice
numérico, lo que permite un acceso rápido a los datos. Sin embargo, la inserción o
eliminación de elementos en el medio del arreglo puede ser costosa en términos de
rendimiento.
Listas Enlazadas (Linked Lists): Una lista enlazada es una estructura de datos en la que
cada elemento, llamado nodo, contiene un valor y un enlace al siguiente nodo de la lista. Esto
permite una inserción o eliminación eficiente de elementos en cualquier posición, aunque el
acceso aleatorio a los elementos puede ser más lento que en un arreglo.
Pilas (Stacks): Una pila es una estructura de datos en la que los elementos se almacenan y
recuperan según el principio "LIFO" (Last-In, First-Out). Es decir, el último elemento que se
inserta es el primero en ser eliminado. Esto se logra mediante operaciones de "apilar" (push)
para agregar elementos a la pila y "desapilar" (pop) para eliminar el elemento superior.
Colas (Queues): Una cola es una estructura de datos similar a una pila, pero sigue el
principio "FIFO" (First-In, First-Out). Los elementos se insertan al final de la cola y se
eliminan desde el frente. Esto se logra mediante operaciones de "encolar" (enqueue) para
agregar elementos y "desencolar" (dequeue) para eliminar el elemento frontal.
Árboles (Trees): Los árboles son estructuras de datos jerárquicas en las que los elementos se
organizan en forma de árbol invertido. Cada elemento, excepto el nodo raíz, tiene un padre y
cero o más hijos. Los árboles se utilizan en diversas aplicaciones, como árboles binarios,
árboles de búsqueda binaria, árboles AVL, árboles de expresiones, entre otros.
Grafos (Graphs): Los grafos son estructuras de datos que constan de un conjunto de nodos o
vértices conectados entre sí mediante enlaces llamados aristas. Los grafos se utilizan para
representar relaciones y conexiones en muchas aplicaciones, como redes sociales, mapas,
rutas de navegación, entre otros.
Estos son solo algunos ejemplos de estructuras de datos utilizadas en programación. Cada una
tiene sus propias características y ventajas según el contexto y los requerimientos del
problema a resolver.
Arreglos (Arrays): Un arreglo es una colección ordenada de elementos del mismo tipo,
donde cada elemento se accede mediante un índice. Los arreglos tienen un tamaño fijo y los
elementos se almacenan de manera contigua en la memoria.
Listas Enlazadas (Linked Lists): Una lista enlazada es una colección de nodos, donde cada
nodo contiene un valor y un enlace al siguiente nodo. A diferencia de los arreglos, las listas
enlazadas no requieren una cantidad fija de memoria y permiten una inserción y eliminación
eficiente en cualquier posición.
Pilas (Stacks): Una pila es una estructura de datos lineal en la que los elementos se insertan y
eliminan según el principio "LIFO" (Last-In, First-Out). Solo se puede acceder al elemento
superior de la pila, lo que implica que el último elemento insertado es el primero en ser
eliminado.
Colas (Queues): Una cola es una estructura de datos lineal en la que los elementos se
insertan al final y se eliminan desde el frente según el principio "FIFO" (First-In, First-Out).
Los elementos se agregan a un extremo de la cola y se eliminan desde el otro extremo.
Árboles (Trees): Un árbol es una estructura de datos no lineal compuesta por nodos
interconectados. Cada nodo tiene un valor y cero o más nodos secundarios, que a su vez
pueden tener sus propios nodos secundarios. Los árboles se utilizan en diversas aplicaciones,
como árboles binarios, árboles de búsqueda binaria, árboles AVL, entre otros.
Una estructura de datos se refiere a la forma en que los datos se organizan y se almacenan en
la memoria de una computadora. Define cómo se accede, se manipula y se gestiona la
información dentro de un programa.
3. Operaciones: Son las acciones que se pueden realizar en la estructura de datos, como la
inserción, eliminación, búsqueda, modificación y acceso a los elementos. Estas operaciones
permiten manipular la información almacenada en la estructura.
4. Reglas de acceso: Son las restricciones o normas que definen cómo se puede acceder a los
elementos de datos dentro de la estructura. Por ejemplo, algunas estructuras de datos
permiten el acceso aleatorio a los elementos, mientras que otras solo permiten el acceso
secuencial.
Lista de enlazada, pilas y colas son las estructuras de datos más comunes.
TDA lista: representa una colección de elementos ordenados. puede contener elementos
repetidos. cada elemento de la lista tiene un índice que lo ubica dentro de la misma.
TDA pila: Una pila (stack o pushdown en inglés) es una lista de elementos de la cual sólo se
puede extraer el último elemento insertado. La posición en donde se encuentra dicho
elemento se denomina tope de la pila.
TDA cola: Una cola (queue en inglés) es una lista de elementos en donde siempre se insertan
nuevos elementos al final de la lista y se extraen elementos desde el inicio de la lista.
TDA cola de prioridad: Una cola de prioridad es una cola en la que cada elemento tiene
asociada una prioridad. La operación de extracción siempre elige el elemento de menor
prioridad.
Ejemplos:
La cola de las ciudades ordenadas por su distancia al destino final.
Las colas de las tareas pendientes ordenadas por su fecha de terminación.
¿Qué es un árbol?
¿Qué es un arreglo?
Los arreglos son estructuras de datos que nos permiten almacenar otros datos dentro de este
tipo de datos. Es decir, es un contenedor que nos permite tener varios datos al mismo tiempo
almacenados. Los arreglos también son conocidos por su nombre en inglés como "arrays".
David Muñoz: 22-SIST-1-039
Una cola (también llamada fila) es un tipo de dato abstracto, caracterizada por ser una
secuencia de elementos en la que la operación de inserción push se realiza por un
extremo y la operación de extracción pull por el otro. También se le llama estructura
FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será
también el primero en salir.
Una matriz es una estructura de datos que consiste en filas y columnas. En otras
palabras, tiene múltiples filas y columnas, cada una con más de dos elementos. Las
intersecciones de filas y columnas se denominan celdas, y cada celda puede contener
información simple o compleja.
¿Qué es un vector?
Un vector es una serie de elementos en un orden específico, por lo general todos del mismo
tipo (si bien los elementos pueden ser de casi cualquier tipo). Se accede a los elementos
utilizando un entero como índice para especificar el elemento que se requiere. Las
implementaciones típicas asignan palabras de memoria contiguas a los elementos de los
arreglos (aunque no siempre es el caso). Los arreglos pueden cambiar de tamaño o tener una
longitud fija.
¿Qué es un índice?
Una pila es una lista ordenada o estructura de datos que permite almacenar y recuperar datos,
siendo el modo de acceso a sus elementos de tipo LIFO. Esta estructura se aplica en multitud
de supuestos en el área de la informática debido a su simplicidad y capacidad de dar respuesta
a numerosos procesos.
Un árbol se puede definir como una estructura jerárquica y en forma no lineal, aplicada sobre
una colección de elementos u objetos llamados nodos.
El encapsulamiento busca agrupar datos y los métodos que los manipulan en una única
entidad llamada objeto. Los datos dentro del objeto están protegidos y no son accesibles
directamente desde fuera del objeto. En cambio, se accede a los datos a través de métodos
públicos o propiedades que actúan como interfaces para interactuar con el objeto.
En la programación orientada a objetos (POO), la herencia es un concepto que permite crear nuevas
clases basadas en clases existentes. Se basa en el principio de "es un/a" y se utiliza para modelar
relaciones de especialización y generalización entre clases.
La herencia permite que una clase (llamada clase derivada o subclase) herede propiedades y
comportamientos de otra clase (llamada clase base o superclase). La clase derivada hereda los
atributos y métodos de la clase base y puede agregar nuevos atributos y métodos específicos si es
necesario.
Un ejemplo común de herencia es la relación entre una clase "Animal" como clase base y las clases
derivadas como "Perro" y "Gato". La clase "Animal" puede tener atributos y métodos comunes a
todos los animales, como "nombre" y "hacerSonido", mientras que las clases "Perro" y "Gato" pueden
agregar atributos y métodos específicos, como "ladrar" y "maullar", respectivamente.
¿Para qué sirven los métodos getters (get) y setters (set)?
Los métodos getters (get) y setters (set) son parte de las convenciones utilizadas en la
programación orientada a objetos (POO) para acceder y modificar los atributos de un objeto
de manera controlada. Estos métodos proporcionan una interfaz pública para obtener y
establecer los valores de los atributos de un objeto, en lugar de permitir un acceso directo a
los atributos.
Aquí se explica su utilidad:
1. Métodos getters (get): Un método getter permite obtener el valor de un atributo específico
de un objeto. En lugar de acceder directamente al atributo, se utiliza un método get que
devuelve el valor almacenado en el atributo.
Esto tiene varias ventajas:
- Encapsulación: Los métodos getters ocultan los detalles internos de cómo se almacena un
atributo y proporcionan una forma controlada de acceder a su valor. Esto protege la
integridad de los datos y evita modificaciones no deseadas.
- Control de acceso: Los métodos getters pueden aplicar lógica adicional antes de devolver
el valor del atributo. Por ejemplo, pueden realizar validaciones o cálculos antes de entregar el
valor. Esto permite mantener una coherencia interna y aplicar reglas específicas según sea
necesario.
El ordenamiento por selección tiene una complejidad de tiempo de O(n^2), donde "n" es el
número de elementos en la lista. Esto se debe a que en cada iteración se realiza una búsqueda
lineal para encontrar el mínimo (o máximo) en la lista no ordenada, y se repite este proceso n
veces.
Sin embargo, el ordenamiento por selección puede ser útil en ciertos casos específicos, como
cuando el costo de cambiar elementos es alto en comparación con el costo de encontrar el
mínimo (o máximo). Además, es un buen algoritmo para ilustrar conceptos básicos de
ordenamiento y se utiliza a menudo en ejemplos didácticos.
Un árbol binario es una estructura de datos en forma de árbol donde cada nodo tiene como
máximo dos hijos: un hijo izquierdo y un hijo derecho. Cada nodo del árbol binario tiene una
relación con sus hijos y con su padre, excepto el nodo raíz, que no tiene un padre.
RESPONDER (F) O VERDADERO(V)
Un tipo de dato abstracto (TDA) es una abstracción de datos que define una colección de
operaciones y restricciones sobre cómo se pueden manipular los datos. Algunos TDAs
básicos son la lista, pila, cola y cola de prioridad. Cada uno tiene características y reglas
específicas para su uso.
Un árbol es una estructura de datos jerárquica compuesta por nodos interconectados. Cada
nodo tiene un valor y cero o más nodos secundarios. Los árboles se utilizan en diversas
aplicaciones y pueden tener diferentes variaciones, como árboles binarios, árboles de
búsqueda binaria y árboles AVL.
Un arreglo es una estructura de datos que almacena elementos del mismo tipo de forma
contigua en la memoria. Se accede a los elementos mediante un índice numérico.