Preparar Supuesto BL III Flashcards
Lista (List)
Conjunto ORDENADO de elementos HOMOGÉNEOS. Permite DUPLICADOS.
Es necesario tener un puntero inicio que apunta al primer elemento de la lista.
Permiten realizar inserciones en cualquier punto de la lista.
Permite eliminar cualquier elemento.
El acceso a los elementos es secuencial (tenemos que ir pasando por cada uno de ellos, ya que cada elemento nos direcciona al siguiente).
Tipos de listas
Listas enlazadas simples.
Listas enlazadas dobles.
Listas circulares.
Pilas.
Colas.
Listas enlazadas simples
Cada elemento tiene una variable “valor” (de un tipo de dato o estructura de datos) y un puntero denominado “siguiente” que apunta hacia su sucesor (siguiente elemento).
Listas enlazadas dobles
Son iguales a las listas enlazadas simples, pero añaden en cada elemento un nuevo puntero denominado “anterior” que apunta al antecesor.
Listas circulares
La lista circular es una lista enlazada simple o doble con las siguientes particularidades:
No tiene puntero “fin”.
El puntero “siguiente” del último elemento apunta al primer elemento.
Pilas
Denominada lista LIFO (Last In First Out) ya que almacena datos en este orden, es decir, el último elemento que se incorpora a la pila es el primero que sale.
Para entenderlo, imagina una pila de libros. Si quieres poner otro libro en la pila lo sitúas arriba del todo. Cuando quieres coger un libro tienes que empezar cogiendo el de arriba (el último que has puesto).
Colas
También denominada lista FIFO (First In First Out) ya que almacena datos en este orden, es decir, el primer elemento que se incorpora a la cola es el primero que sale.
Para entenderlo, imagina la cola de un cine. El primero que llega es el primero que entra al cine, y si llega alguien nuevo se sitúa al final de la cola.
Bicola
La bicola o doble cola es un tipo de cola especial que permiten la inserción y eliminación de elementos de ambos extremos de la cola.
Puede representarse a partir de un vector y dos índices, siendo su representación más frecuente una lista circular doblemente enlazada.
Todas las operaciones de este tipo de datos tienen coste constante.
Árboles
Es un tipo de datos estructurados, DINÁMICO y no lineal.
Diferencia principal entre árboles y listas
Los árboles utilizan una estructura JERÁRQUICA, mientras que las listas tienen una estructura LINEAL.
Grafos
Es un conjunto de nodos o vértices y un conjunto de arcos (aristas) que establecen relaciones (no jerárquicas) entre los nodos.
Archivo o fichero informático
Conjunto de información guardado en forma de bytes, en un soporte electrónico hardware de almacenamiento.
Conjunto (Set)
Colección de valores NO ORDENADOS que no permite elementos repetidos.
Sin orden y sin duplicados.
Mapa (Map)
Conjunto de elementos formados por pares clave-valor. NO ESTAN ORDENADOS.
Las claves no pueden estar repetidas pero los valores si.
Diccionario (Dictionary)
Un diccionario es un Mapa (Map) donde se le da un orden interno a las claves.
Concepto de “pipelines”
Es una serie de etapas de procesamiento de datos donde la salida de una etapa se convierte en la entrada de la siguiente.
Apps de Integración Continua (CI) y Entrega Continua (CD):
Jenkins
Travis CI
CircleCI
GitLab CI/CD
Bamboo
TeamCity
Apps de Sistema de Mensajería:
RabbitMQ
Apache Kafka
ActiveMQ
Redis Pub/Sub
Amazon SQS
NATS
Apps de Control de Versiones:
Git
Subversion (SVN)
Mercurial
Perforce
Bazaar
CVS (Concurrent Versions System)
Apps de Automatización de Tareas y DevOps:
Ansible
Puppet
Chef
SaltStack
Terraform
Kubernetes
Apps de Monitorización y Logging:
Prometheus
Grafana
Nagios
Splunk
ELK Stack (Elasticsearch, Logstash, Kibana)
Datadog
Apps de Gestión de Proyectos y Colaboración:
Jira
Trello
Asana
Monday.com
Basecamp
Microsoft Teams
Integración Continua (CI)
La Integración Continua es una práctica de desarrollo de software en la que los desarrolladores integran su código de trabajo en un repositorio compartido con frecuencia.
Entrega Continua (CD)
La Entrega Continua es una práctica que extiende la Integración Continua al automatizar el proceso de lanzamiento de software, permitiendo que los cambios en el código se desplieguen automáticamente en entornos de producción o preproducción.