comp-think/2020-2021

Lecture "Organising information: ordered structures", exercise 3

essepuntato opened this issue · 23 comments

Consider to have a queue obtained by processing, one by one, the elements included in the list of the first exercise, i.e. my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"]). Describe the status of my_queue after the execution of each of the following operations: my_queue.popleft(), my_queue.append("Voldemort"), my_queue.popleft().

  1. my_queue = deque(["Harry", "Hermione", "Ron", "Severus"])
  2. my_queue = deque(["Harry", "Hermione", "Ron", "Severus", "Voldemort"])
  3. my_queue = deque(["Hermione", "Ron", "Severus", "Voldemort"])

my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft() returns: Harry, Hermione, Ron, Severus
my_queue.append("Voldemort") returns: Harry, Hermione, Ron, Severus, Voldemort
my_queue.popleft()returns: Hermione, Ron, Severus, Voldemort

from collections import deque
my_queue= deque(["Draco", "Harry","Hermione", "Ron", "Severus"])
my_queue.popleft()
my_queue.append("Voldemort")
my_queue.popleft()
print(my_queue)

from _collections import deque # This imports deque
my_queue = deque() # This creates a new queue

my_queue.append("Draco") # Now we add the elements
my_queue.append("Harry")
my_queue.append("Hermione")
my_queue.append("Ron")
my_queue.append("Severus")
deque(['Draco', 'Harry', 'Hermione', 'Ron', 'Severus'])

my_queue.popleft() # Now we execute the exercise
my_queue.append("Voldemort")
my_queue.popleft()
print(my_queue)
deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])

from _collections import deque
my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft() # returns deque(['Harry', 'Hermione', 'Ron', 'Severus'])
my_queue.append("Voldemort") # returns deque(['Harry', 'Hermione', 'Ron', 'Severus', 'Voldemort'])
my_queue.popleft() #returns deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])

status 1 - deque(["Harry", "Hermione", "Ron", "Severus"])
status 2 - deque(["Harry", "Hermione", "Ron", "Severus", "Voldemort"])
status 3 - deque(["Hermione", "Ron", "Severus", "Voldemort"])

my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
After my_queue.popleft() my_queue contains "Harry", "Hermione", "Ron", "Severus"
After my_queue.append("Voldemort") my_queue contains "Harry", "Hermione", "Ron", "Severus", "Voldemort"
After my_queue.popleft() my_queue contains "Hermione", "Ron", "Severus", "Voldemort"

from collections import deque
my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft() #it removes the string "Draco" from the queue and returns "Draco"
my_queue.append("Voldemort") #it adds the string "Voldemort" at the end of the queue
my_queue.popleft() #it removes the string "Harry" from the queue and returns "Harry"
print(my_queue) #the queue printed is: deque["Hermione", "Ron", "Severus", "Voldemort"]

my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft() #current status: deque(["Harry", "Hermione", "Ron", "Severus"])
my_queue.append("Voldemort") #current status: deque(["Harry", "Hermione", "Ron", "Severus", "Voldemort"])
my_queue.popleft() #current status: deque(["Hermione", "Ron", "Severus", "Voldemort"])

my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft() #removes first element left from my_queue
print(my_queue)

my_queue.append("Voldemort") #adds string "Voldemort" at the end of my_queue
print(my_queue)

result_b = my_queue.popleft() #removes first element left from my_queue
print(my_queue)

deque(['Harry', 'Hermione', 'Ron', 'Severus']) # "Draco" has been removed
deque(['Harry', 'Hermione', 'Ron', 'Severus', 'Voldemort']) # "Voldemort" has been added at the end
deque(['Hermione', 'Ron', 'Severus', 'Voldemort']) # "Harry" has been removed

my_queue = deque(["Draco","Harry","Hermione","Ron","Severus"]):
my_queue.popleft() #the first item is removed and the algorithm returns deque(["Harry","Hermione","Ron","Severus"])
my_queue.append("Voldemort") #addition of this item
my_queue.popleft() #returns deque(["Hermione","Ron","Severus","Voldemort"])

print(my_queue) #it will print ["Hermione","Ron","Severus","Voldemort"]

from collections import deque

my_queue = deque(["Draco", "Harry","Hermione", "Ron", "Severus"])
my_queue.popleft()
my_queue.append("Voldemort")
my_queue.popleft()

print(my_queue)

OUTPUT:
deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])

from collections import deque
my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft()
my_queue.append("Voldemort")
my_queue.popleft()
print(my_queue)

#will print
deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])

Initial queue: my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])

1 - my_queue.popleft(): deque(["Harry", "Hermione", "Ron", "Severus"])
2 - my_queue.append("Voldemort"): deque(["Harry", "Hermione", "Ron", "Severus", "Voldemort"])
3 - my_queue.popleft(): deque(["Hermione", "Ron", "Severus", "Voldemort"])

The queue will remove the first element, then add one, and remove the new first.
Operations will result in the following outputs:
["Harry", "Hermione", "Ron", "Severus"]
then
["Harry", "Hermione", "Ron", "Severus", "Voldemort"]
and finally
["Hermione", "Ron", "Severus", "Voldemort"]

from collections import deque

my_queue = deque(["Draco", "Harry","Hermione", "Ron", "Severus"])
my_queue.popleft()
my_queue.append("Voldemort")
my_queue.popleft()

print(my_queue)

deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])

from collections import deque

my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])

my_queue. popleft()
print(my_queue)

my_queue.append("Voldemort")
print(my_queue)

my_queue.popleft()
print(my_queue)


deque(['Harry', 'Hermione', 'Ron', 'Severus'])
deque(['Harry', 'Hermione', 'Ron', 'Severus', 'Voldemort'])
deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])
from collections import deque

my_queue = deque(["Draco","Harry","Hermione","Ron","Severus"])
my_queue.popleft()
my_queue.append("Voldemort")
my_queue.popleft()

print(deque)

deque = (["Hermione","Ron","Severus","Voldemort"])

my_stack = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"]).

my_stack.pop(), my_stack.pop() return
my_stack = deque(["Draco", "Harry", "Hermione", "Ron"]).
my_stack = deque(["Draco", "Harry", "Hermione"])

my_stack.append("Voldemort") returns
my_stack = deque(["Draco", "Harry", "Hermione", "Voldemort"])

my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
after: my_queue.popleft(), my_queue.append("Voldemort"), my_queue.popleft() returns
(["Harry", "Hermione", "Ron", "Severus"])
(["Harry", "Hermione", "Ron", "Severus", "Voldemort"])
(["Hermione", "Ron", "Severus", "Voldemort"])

from collections import deque
queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
queue.popleft()
print(queue) #(['Harry', 'Hermione', 'Ron', 'Severus'])
queue.append("Voldemort")
print(queue) #(['Harry', 'Hermione', 'Ron', 'Severus', 'Voldemort'])
queue.popleft()
print(queue) #(['Hermione', 'Ron', 'Severus', 'Voldemort'])

from collections import deque
my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])

my_queue.popleft()
my_queue.append("Voldemort")
my_queue.popleft()

print(my_queue)

deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])

my_queue:
after my_queue.popleft() --> my_queue = deque(["Harry", "Hermione", "Ron", "Severus"])
after my_queue.append("Voldemort") --> my_queue = deque(["Harry", "Hermione", "Ron", "Severus", "Voldemort")]
after my_queue.popleft() --> my_queue = deque(["Hermione", "Ron", "Severus", "Voldemort")]