estructuras de datos - unamgil/2020-1/_downloads/d67b0d92f77… · interfaz vs implementación •...

27
Estructuras de Datos

Upload: others

Post on 30-Apr-2020

2 views

Category:

Documents


0 download

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

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

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

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

• 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

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

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

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

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

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

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

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

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
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
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
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

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

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

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

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

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

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

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

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

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

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

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

class LinkedList(object): """Implementación de una lista ligada"""

def delete(self, data): pass

def search(self, data): pass