Está en la página 1de 3

Estructura de Datos y Algoritmos

Grado Ingeniería Informática


Universidad Carlos III de Madrid
CURSO 2020-2021

Grupos 801 y 84. Examen Parcial. 11 Marzo 2021.

Nombre:

Instrucciones:
- Escribe tu nombre en el cuadernillo y en las hojas de cuadros.
- Los móviles deben estar apagados y nunca pueden estar encima de la mesa.
- Utiliza las hojas de cuadros para preparar tu solución. Cuando estés
conforme, copia tu solución final en este cuadernillo.
- Cuida al máximo la presentación de tu solución. Es imprescindible que tu
código sea claro, bien ordenado y limpio.
- No puedes pedir típex, bolígrafo, etc a tus compañeros. Si necesitas algo,
pídeselo al profesor.
- Debido al Covid, si tienes alguna pregunta, levanta tu mano y espera a ser
atendido. Tendrás que preguntar en voz alta.
- No está permitido utilizar las estructuras de lista o diccionario de Python
- No puedes salir del examen antes de que pasen 30 minutos.
- No está permitido ir al baño.
- Cuando termines, entrega el cuadernillo al profesor. Las hojas de cuadros no
se entregan. Tíralas o llévatelas.
Problema: En la clase MyList, completa el método oddList, que elimina de la lista
todos aquellos nodos cuyos elementos son pares. El método debe devolver otra
lista, MyList, que contenga todos los elementos eliminados de la lista invocante.
class DNode:
def __init__(self, elem, next=None, prev=None):
self.elem=elem
self.next=next
self.prev=prev

class MyList:
def __init__(self):
self._head=None
self._tail=None
self._size=0

def append(self,e):
newNode=DNode(e)
if self._head==None:
self._head=newNode
else:
self._tail.next=newNode
newNode.prev=self._tail
self._tail=newNode
self._size+=1

def oddList(self):

A continuación, tienes algunos ejemplos:

lista antes de la operación operación y lista que devuelve lista después de la


operación

1->2->4->3 l.oddList() = 2<->4 1<->3

2->4->2->4 l.oddList() = 2<->4<->2<->4 (lista vacía)

1->3->5 l.oddList() = (lista vacía) 1<->3<->5

(lista vacía) l.oddList() = (lista vacía) (lista vacía)

0->3->5->-4 l.oddList() = 0<->-4 3<->5


Escribe a continuación la implementación del método oddList. La solución propuesta
debe tener la menor complejidad asintótica posible. Indica además el peor y mejor
caso de la función, si existe.

No puedes añadir nuevos atributos a las clases DNode y MyList. Si necesitas más
funciones para implementar oddList, estas deben ser implementadas. Recuerda que
no puedes utilizar estructuras de Python como las listas, diccionarios, tuplas, etc.

También podría gustarte