Leisy Karina Algarra Fernandez
Fernanda Vieira Jófili
🤩 Que super aporte!!! Gracias por compartirlo, Karina! Nos ayudará muuucho, es muy visual y simple.
Daniel Ramírez Castaño
Excelente!
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.
Leisy Karina Algarra Fernandez
Fernanda Vieira Jófili
🤩 Que super aporte!!! Gracias por compartirlo, Karina! Nos ayudará muuucho, es muy visual y simple.
Daniel Ramírez Castaño
Excelente!
Israel Castro
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…
Aaron Joel Limachi Quispe
Es verdad isFull() - Retorna true si la cola está llena, sino retorna false
David Barreto
Exacto bien dicho!
Alejandro Giraldo Londoño
Estos son algunos que encontré adicionales, habrá que explorar más de este asunto:
David Barreto
Excelente aporte!
Manuel Alejandro Aguilar Téllez Girón
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.
Luis Alfredo Villalta López
Excelente definición,
Luis Alfredo Villalta López
Excelente definición,
José David Garzón
Amigos, para ahondar en la implementación de estas estructuras de datos en javascript.
Alfredo Martínez García
muchas gracias voy a verlo!
Cristian Blandon
Vale aclarar que, como se mencionó en la clase anterior, Stacks & Queues serían Abstract Data Types, y no estructuras de datos.
Carlos Martin Castillo Jimenez
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.
Josue Granados
Asi es, error de dedo supongo.
Jorge Luis Veliz Berzosa
Quisiera saber mas la utilidad en el dia a dia de estos conceptos
Usuario anónimo
UserHola, aqui me vienen a la mente algunos:
Ricardo Andres Rojas Alonso
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!
Juan José Peláez Hernández
Es un error humano. Tu deducción es correcta ! isFull() – Retorna true si la cola está llena, si no, retorna false.
Ricardo Andres Rojas Alonso
Muchas gracias compañero
Henry Gutierrez Mora
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
Cristian Vargas
Si uno se pone a analizar todos estos conceptos se usan a diario en las herramientas que usamos para desarrolar (Arreglos, Git , Objetos)
Karen Paola Diaz Duarte
genial, ahora a la practica. :)
Joshua Raúl Váley Porras
Pequeña observación. En Queue ADT las funciones isEmpty() e isFull() dicen lo mismo. Es así o es un pequeño error?? Saludos :D
Sebastian Alejandro Veliz Ysla
Deberían ser contrárias XD
Edwin Meixueiro Torres
isFull() esta alreves
Joel Vicente Nieto Gómez
Ahora me interesa saber como implementar y entender su esencia de cada ADT.
Daniel Esteban Santos Mendez
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.
Miguel Torres
Hola, @ElDani.
Dependiendo del lenguaje de programación se incluyen o NO de forma nativa estas ADT. Un gran ejemplo es Python con sus listas y diccionarios. En JS también se incluyen varios de los que Celis menciona aquí. 🤓
Erick Alejandro Carrillo López
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/
Ivan Ezequiel Mazzalay
Genial! Muchas gracias!!
Enzo Díaz
Más adelante les comparto la implementación de Queue que hice en Javascript^^
Demian Martinez
En el isFull() del Queue ADT no debería ser Retorna True si la cola está llena, sino, retorna false? Gracias
Raul Armas
Con referente al glosario, ¿La sintaxis y los métodos no dependen del lenguaje?
Fernanda Vieira Jófili
Los métodos existen en cualquier lenguaje de programación porque son parte del acceso a los datos y la lógica de almacenamiento. Esto significa que lo que diferenciará es cómo se implementarán los métodos en cada lenguaje de programación.
Marco Ezequiel Morales
Gracias por este excelente Resumen