estructuras de datos - unamgil/2020-1/_downloads/d67b0d92f77… · interfaz vs implementación •...
TRANSCRIPT
![Page 1: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/1.jpg)
Estructuras de Datos
![Page 2: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/2.jpg)
Una Estructura de datos es una manera particular de organizar y almacenar datos
• Arreglos
• Listas
• Conjuntos
• Diccionarios
![Page 3: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/3.jpg)
Todas las estructuras de datos están diseñadas para organizar datos que cumplen cierto propósito, de tal manera que se pueda acceder a ellos y trabajar de manera eficiente
![Page 4: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/4.jpg)
• Muchas compañías basan su éxito en el uso de estructuras de datos
• Interactuamos con las estructuras de datos de manera cotidiana
![Page 5: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/5.jpg)
Abrir un archivo: sistema de archivos
![Page 6: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/6.jpg)
Entrar en tu red social favorita
![Page 7: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/7.jpg)
Realizar una búsqueda en Internet
![Page 8: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/8.jpg)
Busar una ruta en waze
![Page 9: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/9.jpg)
Tu lista de contactos
![Page 10: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/10.jpg)
Interfaz VS implementación
• Una interfaz describe lo que hace una estructura de datos
• Una implementación describe como lo hace
![Page 11: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/11.jpg)
Interfaz VS implementación
• La interfaz define el conjunto de operaciones de la estructura de datos (se conoce estructura de datos abstracta ADT)
• La implementación incluye la representación interna de la estructura de datos y la definición de las operaciones
![Page 12: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/12.jpg)
Interfaz Lista
• size(): regresa n, la longitud de la lista
• append(x): agrega el elemento x al final de la lista
• delete(x): borramos el elemento x de la lista
![Page 13: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/13.jpg)
![Page 14: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/14.jpg)
![Page 15: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/15.jpg)
![Page 16: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/16.jpg)
class Node:
def __init__(self, data=None): self.data = data self.next = None
def __str__(self): return self.data
![Page 17: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/17.jpg)
class Node:
def __init__(self, data=None): self.data = data self.next = None
def __str__(self): return self.data
![Page 18: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/18.jpg)
class Node:
def __init__(self, data=None): self.data = data self.next = None
def __str__(self): return self.data
![Page 19: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/19.jpg)
class Node:
def __init__(self, data=None): self.data = data self.next = None
def __str__(self): return self.data
![Page 20: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/20.jpg)
class LinkedList(object): """Implementación de una lista ligada"""
def __init__(self): self.head = None
def add(self, data): node = Node(data) if self.head is None: self.head = node else: current = self.head while current.next is not None: current = current.next current.next = node
![Page 21: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/21.jpg)
class LinkedList(object): """Implementación de una lista ligada"""
def __init__(self): self.head = None
def add(self, data): node = Node(data) if self.head is None: self.head = node else: current = self.head while current.next is not None: current = current.next current.next = node
![Page 22: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/22.jpg)
class LinkedList(object): """Implementación de una lista ligada"""
def __init__(self): self.head = None
def append(self, data): node = Node(data) if self.head is None: self.head = node else: current = self.head while current.next is not None: current = current.next current.next = node
![Page 23: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/23.jpg)
class LinkedList(object): """Implementación de una lista ligada"""
def __init__(self): self.head = None self.tail = None
def append(self, data): node = Node(data) if self.head is None: self.head = node self.tail = node else: self.tail.next = node self.tail = node
![Page 24: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/24.jpg)
class LinkedList(object): """Implementación de una lista ligada"""
def size(self): count = 0 current = self.head while current.next is not None: count += 1 current = current.next return count
![Page 25: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/25.jpg)
class LinkedList(object): """Implementación de una lista ligada"""
def __init__(self): self.head = None self.tail = None self.size = 0
def append(self, data): node = Node(data) if self.head is None: self.head = node self.tail = node else: self.tail.next = node self.tail = node self.size += 1
![Page 26: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/26.jpg)
class LinkedList(object): """Implementación de una lista ligada"""
def __init__(self): … self.size = 0
def size(self): return self.size
![Page 27: Estructuras de Datos - UNAMgil/2020-1/_downloads/d67b0d92f77… · Interfaz VS implementación • La interfaz define el conjunto de operaciones de la estructura de datos (se conoce](https://reader034.vdocuments.net/reader034/viewer/2022042209/5ead06fab741cb4cf14c5314/html5/thumbnails/27.jpg)
class LinkedList(object): """Implementación de una lista ligada"""
def delete(self, data): pass
def search(self, data): pass