Bienvenido al Curso

1

Introducción al curso básico de algoritmos y estructuras de datos

Introducción a los algoritmos

2

¿Qué entiende una computadora?

3

Lenguajes de programación

4

Estructuras de datos

5

¿Qué es un algoritmo?

6

Metodología para la construcción de un algoritmo

7

Variables y tipos de datos

8

User defined data types

9

Instalando Ubuntu Bash en Windows

10

Creando nuestro user defined data type

11

Abstract Data Types básicos: Lists, Stacks, Queues

12

Explicación gráfica Data Types básicos

13

Glosario de funciones para Abstract Data Types

14

Clases y objetos

15

Creando tu primera Queue: Arrays

16

Creando tu primera Queue: implementación.

17

Creando tu primera Queue: implementar la función enQueue

18

Creando tu primera Queue: implementar la función deQueue

19

Creando tu primera Queue: main code

Algoritmos de ordenamiento

20

Algoritmos de ordenamiento

21

Bubble sort

22

Bubble sort: implementación

23

Bubble sort: main code

24

Insertion sort

25

Desafío: implementa un algoritmo de ordenamiento

Recursividad

26

Recursividad

27

La función Factorial, calculando el factorial recursivamente

28

Manejo de cadenas de caracteres

29

Arte: Generando arte recursivo

Divide and conquer y programación dinámica

30

Divide and Conquer (divide y vencerás)

31

Qué es la programación dinámica (divide y vencerás v2.0)

32

MergeSort

33

Desafío: Buscar el algortimo más rápido de sort

34

Implementando QuickSort con Python

35

Implementando QuickSort con Python: main code

Algoritmos 'Greedy'

36

Qué son los Greedy Algorithm

37

Ejercicio de programación greedy

38

Ejercio de programación greedy: main code

Grafos y árboles

39

Grafos y sus aplicaciones

40

Árboles

¿Cómo comparar Algoritmos?

41

Cómo comparar algoritmos y ritmo de crecimiento

¿Qué sigue?

42

Cierre del curso y siguientes pasos

Glosario de funciones para Abstract Data Types

13/42

Lectura

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.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 93

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Al final, exactamente en la última línea, parece ser que hay un error:

Queue ADT
isFull() – Retorna true si la cola está vacía, si no, retorna false. // Debe decir que retorna true si la cola está llena

ADT Vs. Estructura de datos: Los ADT son estructura de datos creadas por el mismo programador, lo que quiere decir que se basan ya sea en una lista, un diccionario o un stack, pero estaran definidas de otra forma para tener un mejor control y flujo del codigo. En un caso mas claro imaginen tener un proyecto grande donde se trabaja con muchas variables y datos necesitamos crear estructuras de datos para tener un mejor orden y si trabajamos con las formas primitivas seria algo muy confuso de esta forma es en la que salen las ADT. Entonces las ADT realmente son definiciones de las mismas estructuras de datos pero declaradas por los programadores

Estos son algunos que encontré adicionales, habrá que explorar más de este asunto:

  • Container
  • List
  • Set
  • Multiset
  • Map
  • Multimap
  • Graph
  • Tree
  • Stack
  • Queue
  • Priority queue
  • Double-ended queue
  • Double-ended priority queue

Entonces se podría entender a la cola (Queue) como la fila de un banco o de un restaurante o cualquier otro, porque los clientes se van formando y atienden al primero que llegó.

La pila (Stack) es como cuando guardabas discos en unas cosas que tenían como un cilindro en medio, sacabas el último que habías metido, si querías sacar uno del medio tenías que sacar un montón y se hacía un desorden.

La lista entiendo que sacas el que quieras de la posición que quieras. Es como cuando checas tus calificaciones en la universidad, buscas tu nombre y revisas, o buscas el de tu amigo y ya, no tienes que estar revisando uno por uno a mucho detalle.

Amigos, para ahondar en la implementación de estas estructuras de datos en javascript.

https://www.youtube.com/watch?v=1AJ4ldcH2t4

Hola a todos, me parece que hay un error en el Queue ADT, al ingresar isFull() - debería retornar true si la cola está llena.
Ya que como aparece en el resumen, isEmpty y isFull están retornando la misma información.

Quisiera saber mas la utilidad en el dia a dia de estos conceptos

Me queda la duda de si en las operaciones disponibles isEmpty () y isFull del ADT de Queue realmente tienen la misma funcionalidad, ya que en el artículo ambas dicen lo siguiente:

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.

Por ende no veo la diferencia, me gustaría saber si “isFull()” lo que realmente hace es (Retornar true si la cola está llena, si no, retorna false)

Agradezco sus comentarios… Saludos!

Espero ver los ejercicios prácticos, pues la lectura estuvo clara… hay algunos vacíos … al momento frente a las anteriores clases esta no me a gustado la dinámica del docente

Si uno se pone a analizar todos estos conceptos se usan a diario en las herramientas que usamos para desarrolar (Arreglos, Git , Objetos)

genial, ahora a la practica. 😃

Pequeña observación.
En Queue ADT las funciones isEmpty() e isFull() dicen lo mismo.
Es así o es un pequeño error?? Saludos 😄

Ahora me interesa saber como implementar y entender su esencia de cada ADT.

Estoy entiendo poco a poco los conceptos pero algo que no entiendo es que lenguaje tiene estos ADT? O nosotros como programadores somos los que tenemos que crearlos y estos son estandares de los métodos para llevar al momento de crear un ADT, si?

Array es un ADT? Según lo que he entendido de todo si por lo métodos que tiene, pero también es una Estructura de Datos? Esto se esta poniendo bien ambigüo jeje.

Y ya como comentario, deberían aclarar que estos no son cosas nativas de los lenguajes, porque Celis habla como si lo fuera y me ha estado confundiendo mucho.

Por si tiene duda sobre si python cuenta con un mecanismo de estructuras de datos aquí lo explica muy bien https://recursospython.com/guias-y-manuales/estructuras/

Más adelante les comparto la implementación de Queue que hice en Javascript^^

En el isFull() del Queue ADT no debería ser Retorna True si la cola está llena, sino, retorna false?
Gracias

Con referente al glosario, ¿La sintaxis y los métodos no dependen del lenguaje?

Gracias por este excelente Resumen

Gracias Ricardo.

Súper explicación, gracias!

Genial, me queda claro las operaciones que tiene cada ADT.

Muy buena explicacion , quedo muy claro el tema 😄

isFull() – Retorna true si la cola está llena, si no, retorna false.

Esto es mas o menos la clase de registros, pero en software.

Aquí dejo una fuente sobre linked list que me dio un dolor de cabeza en el Curso de Introducción a C 2019: https://www.geeksforgeeks.org/linked-list-set-1-introduction/
Aún tengo una duda: ¿Las linked lists son ADT o son DS?

isEmpty() – Retorna true si la cola está vacía, si no, retorna false.
isFull() – Retorna true si la cola NO está vacía, si no, retorna false.

Genial!

Excelente definición, todo mucho mas claro

Súper genial… Gracias!!

s

  • List ADT: Es un Dato Abstracto utilizado para representar un número contable de valores ordenados.

  • Stack ADT: Sirve como colección de elementos con dos operaciones principales:

  1. Push: agrega un elemento a la colección

  2. Pop: remueve un elemento a la colección
    Este sistema se maneja de la manera LIFO.

  • Queue ADT: Ordena los datos por orden de llegada,

Como podriamos implementar todo esto

Prácticamente estamos viendo los que más se ven por internet.
https://www.geeksforgeeks.org/abstract-data-types/

gracias

Excelente con esta explicacion queda mas claro.

Buena ayuda

Buenos datos, guardarlos es importante para lo que sigue en el curso.

Excelente resumen de las operaciones, espero aplicarlas pronto.

¡¡¡Gracias!!!

genial 😄

¿Estos son todos los ADT que se pueden encontrar en un lenguaje de programación pero no todos son nativos o están disponibles en cada lenguaje?

muy bueno, a tener en cuenta para el examen.

Buen glosario, aunque dependiendo el lenguaje puede cambiar un poco el nombre de la función o pueden tener mas funciones, pero siempre cuentan por lo menos las de aquí

Bien!!

Muy util esta lectura

Importante información, ahora veo que no era un link sino que estaba en la clase siguiente esta información, muchas gracias!

Gracias por el glosario

Anteriormente había escuchado sobre este tema, pero no lo tenia muy claro, pero con esta explicación me quedaron mas claro los conceptos y operaciones que se pueden realizar con ellos. Muchas gracias.

Muy útil!!

muy útil, muchas gracias.

excelente, asi queda un poco mas claro en que consiste cada uno

Recuerdo mis clases de estructura de datos en la Uni jaja

Muy buenos apuntes para repasar.

Gracias, por el glosario.

Gracias por el glosario, Muy buena explicación sobre el tema

Bien, por escribir los métodos de cada uno.

buen glosario 😄

Muy buen aporte, aunque me parece que sera necesario encontrar el equivalente en el lenguaje que usemos de manera mas frecuente.

Gracias por el glosario!!

Gracias por el glosario!

Muy buen documento!!!1

Gracias

Hola Karina Gracias por esa imagen esta muy buena .

Muchas gracias!!!

Muchas Gracias!!!

bueno esta lectura estuvo mas comprensible que las clases

Crack! Más fácil, imposible

gracias karina por la información

Encontré información acerca de ataco, donde: no está vacío. iii) peep () - Devuelve el elemento superior de la pila sin eliminarlo.

Excelente… Seguimos avanzando. 👌🏽

super bueno el resumen

Esto nunca lo vi tan al detalle en la universidad, hicimos muchos ejercicios pero esto me hubiera servido mucho, información de valor

Gracias por el aporte!

NO sabía que cada estructura tenía tantos métodos, de hecho solo usaba push y pop. Es bueno saber las posibilidades con estos mismos

Darle

Gracias por la información…

En el Queue ADT, no deberia ser así:
isEmpty() – Retorna true si la cola está vacía, si no, retorna false.
isFull() – Retorna true si la cola NO está vacía(esta llena), si no, retorna false.

muy bien

Las listas enlazadas necesitan un puntero que almacene el contenido del primer nodo o el start. Si se llega a borrar este nodo sin asignar el start el siguiente nodo, la lista se perderá. EN el curso introducción a C de platzi hay una implementación de esta lista con datos númericos.

Buen resumen, prestar atención a los detalles en algunos errores.

excelente curso en buena hora profe celis, muy buena la documentacion de los adt mas usados y sus compenentes utilizados en codigo .

Estas funciones de ADT son en particular de algún lenguaje de programación?

QUEUE: Es un tipo de estructura de ADT, la cual organiza los elementos a medida que van ingresando, de forma que su logica se aplica con FIFO, primero entrar primero en salir, es algo asi como cuando vamos a hechar gasolina en venezuela, tienes que irte un dia antes para salir de primero

bastante bueno, con esta lectura me queda más claro.

excelente aporte muchas gracias profe

Esto me recuerda a mis clases de logística

A memorizar cual Sidis.

Super!

Excelente explicación complementaria.

Ya con esta clase se esclarece las dos últimas 😃