Tipos Abstractos de Datos: Listas, Pilas y Colas
Clase 13 de 42 • Curso Práctico de Estructuras de Datos y Algoritmos
Contenido del curso
Introducción a los algoritmos
- 2

Cómo Funcionan las Computadoras y el Sistema Binario
08:25 min - 3

Introducción a Lenguajes de Programación: Bajo y Alto Nivel
04:07 min - 4

Estructuras de Datos para Rutas Más Cortas en Mapas
07:14 min - 5

Algoritmo de Dijkstra para encontrar la ruta más corta
04:18 min - 6

Metodología para Resolver Algoritmos Paso a Paso
03:24 min - 7

Variables y Tipos de Datos en Programación
01:24 min - 8

Creación de Tipos de Datos Personalizados en C
04:22 min - 9

Configuración de Ubuntu en Windows 10 para C/C++
00:52 min - 10

Implementación de User Defined Data Type en C: Estructuras paso a paso
13:33 min - 11

Tipos de Datos Abstractos y Estructuras de Datos en Programación
07:21 min - 12

Tipos Abstractos de Datos: Lista, Pila, Cola y Diccionario
08:50 min - 13

Tipos Abstractos de Datos: Listas, Pilas y Colas
Viendo ahora - 14

Clases y objetos
00:00 min - 15

Colas y estructuras de datos: gestión de pedidos en restaurante
03:39 min - 16

Implementación de Queues con Arrays en Visual Studio Code
06:17 min - 17

Implementación de Abstract Data Type en C: Función enqueue
13:31 min - 18

Implementación de la función dequeue en estructuras de datos en C
08:03 min - 19

Implementación de Colas en C: Declaración y Uso de Funciones Básicas
07:31 min
Algoritmos de ordenamiento
- 20

Algoritmos de Ordenamiento: Conceptos y Aplicaciones Básicas
06:48 min - 21

Funcionamiento del Algoritmo de Ordenamiento Burbuja
06:55 min - 22

Implementación de Bubble Sort en C paso a paso
12:29 min - 23

Implementación de Bubble Sort en C y función de impresión
10:52 min - 24

Ordenamiento por Inserción en C: Algoritmo y Ejemplo Práctico
01:33 min - 25

Algoritmos de Ordenamiento Descendente: Implementación Práctica
00:12 min
Recursividad
Divide and conquer y programación dinámica
- 30

Diseño y análisis de algoritmos: Divide y vencerás
03:02 min - 31

Introducción a Programación Dinámica y Quicksort
03:13 min - 32

Ordenamiento de Arrays con MergeSort en C
01:33 min - 33

Algoritmos de Ordenamiento de Datos de Mayor a Menor
00:13 min - 34

Algoritmo Quicksort en Python: Implementación y Funcionamiento
12:50 min - 35

Ordenamiento Quick Sort en Python paso a paso
05:07 min
Algoritmos 'Greedy'
Grafos y árboles
¿Cómo comparar Algoritmos?
¿Qué sigue?
En esta lectura de referencia encontrarás la definición de los 3 Abstract Data Types más utilizados: listas ADT, Stack o Pila ADT y Queue o Cola ADT.
La forma general de conocer cada una de estas 3 ADT es a través de sus definiciones y las definiciones sólo mencionan qué operaciones serán implementadas, sin embargo no especifican cómo se organizarán los datos en memoria o cuál algoritmo se utilizará para implementar las operaciones. Estas tres definiciones hacen parte de lo que conocemos como tipos de datos abstractos, porque dan una vista independiente de la implementación. Debido a esto es importante que conozcas los métodos o funcionalidades que podrás encontrar en un ADT.
List ADT
Una lista es un tipo de datos abstracto utilizado para representar un número contable de valores ordenados. El mismo valor puede existir más de una vez, esta es la implementación computacional del concepto matemático de secuencia finita, la lista.
A continuación te comparto las operaciones disponibles en este ADT:
get() – Retorna un elemento de la lista en cualquier posición especificada. insert() – Inserta un elemento en cualquier posición de la lista. remove() – Remueve la primera aparición de cualquier elemento en una lista no-vacía. removeAt() – Remueve el elemento que se encuentre en la posición especificada en una lista que no esté vacía. replace() – Reemplaza un elemento en cualquier posición por otro elemento. size() – Retorna el número de elementos contenidos en la lista. isEmpty() – Retorna true si la lista está vacía, si no, regresa false. isFull() – Retorna true si la lista está llena, si no, regresa false.
Stack ADT
Un Stack es un tipo de datos abstracto que sirve como una colección de elementos con dos operaciones principales: Push: agrega un elemento a la colección Pop remueve el elemento que se añadió más recientemente y que no ha sido removido, el orden en el que esto funciona como hemos visto en clases sigue la lógica LIFO (last in, first out) que en español sería “último o más reciente en entrar, primero en salir”
A continuación te comparto las operaciones disponibles en este ADT:
push() – Inserta un elemento en un extremo de la pila denominado “cima”. pop() – Remueve y retorna el elemento en la cima de la pila, si el stack no está vació. peek() – Retorna el elemento en la cima del stack sin removerlo, si el stack no está vacío. size() – Retorna el número de elementos en el stack. isEmpty() – Retorna true si el stack está vacío, si no, retorna false. isFull() – Retorna true si la lista está llena, si no, regresa false.
Queue ADT
Una cola es un ADT que sirve para almacenar datos en el orden en el que los datos van llegando, sigue una lógica del tipo FIFO o “primero en llegar, primero en salir” como es en la mayoría de supermercados.
A continuación te comparto las operaciones disponibles en este ADT:
enqueue() – Inserta un nuevo elemento al final de la cola. dequeue() – Remueve y retorna el primer elemento de la cola si la cola no está vacía. peek() – Retorna el primer elemento de la cola sin removerlo. size() – Retorna el número de elementos almacenados en la cola. isEmpty() – Retorna true si la cola está vacía, si no, retorna false. isFull() – Retorna true si la cola está vacía, si no, retorna false.