wi1 = {
"name" : "A Standup Cloud Team",
"start_hour" : 8,
"duration_min" : 15,
"prev" : None,
"next" : None
}
wi2 = {
"name" : "B Architecture Board",
"start_hour" : 9,
"duration_min" : 60,
"prev" : None,
"next" : None
}
wi3 = {
"name" : "C Cloud Training",
"start_hour" : 12,
"duration_min" : 120,
"prev" : None,
"next" : None
}
wi1["next"] = wi2
wi2["prev"] = wi1
wi2["next"] = wi3
wi3["prev"] = wi2
work = wi1
item = work
while item:
print(item['name'])
item = item['next']
def add_item_begin(my_collection, new_item): new_item["next"] = my_collection new_item["prev"] = None if my_collection: my_collection["prev"] = new_item my_collection = new_item return my_collection
wi4 = {
"name" : "___ Manager meeting",
"start_hour" : 7,
"duration_min" : 15,
"prev" : None,
"next" : None
}
work = add_item_begin(work, wi4)
item = work
while item:
print(item["name"])
item = item["next"]
def add_item_end(my_collection, new_item): if my_collection == None: my_collection = new_item new_item["next"] = None new_item["prev"] = None return my_collection else: item = my_collection while item["next"]: item = item["next"] item["next"] = new_item new_item["next"] = None new_item["prev"] = item return my_collection
wi5 = {
"name" : "D Compliance Check",
"start_hour" : 15,
"duration_min" : 15,
"prev" : None,
"next" : None
}
work = add_item_end(work, wi5)
item = work
while item:
print(item["name"])
item = item["next"]
wi1 = {
"name" : "A Standup Cloud Team",
"start_hour" : 8,
"duration_min" : 15,
"prev" : None,
"next" : None
}
wi2 = {
"name" : "B Architecture Board",
"start_hour" : 9,
"duration_min" : 60,
"prev" : None,
"next" : None
}
wi3 = {
"name" : "C Cloud Training",
"start_hour" : 12,
"duration_min" : 120,
"prev" : None,
"next" : None
}
wi1["next"] = wi2
wi2["prev"] = wi1
wi2["next"] = wi3
wi3["prev"] = wi2
work = wi1
def add_item_begin(my_collection, new_item):
new_item["next"] = my_collection
new_item["prev"] = None
if my_collection:
my_collection["prev"] = new_item
my_collection = new_item
return my_collection
wi4 = {
"name" : "___ Manager meeting",
"start_hour" : 7,
"duration_min" : 15,
"prev" : None,
"next" : None
}
work = add_item_begin(work, wi4)
def add_item_end(my_collection, new_item):
if my_collection == None:
my_collection = new_item
new_item["next"] = None
new_item["prev"] = None
return my_collection
else:
item = my_collection
while item["next"]:
item = item["next"]
item["next"] = new_item
new_item["next"] = None
new_item["prev"] = item
return my_collection
wi5 = {
"name" : "D Compliance Check",
"start_hour" : 15,
"duration_min" : 15,
"prev" : None,
"next" : None
}
work = add_item_end(work, wi5)
item = work
while item:
print(item["name"])
item = item["next"]
def del_item_begin(my_collection):
# item is the element that should be removed
item = my_collection
# execute only if the collection was not empty
if item:
# my collection should point to the next element
my_collection = item['next']
# if the collection is not empty, it's first element property 'prev' should point to None
if my_collection:
my_collection['prev'] = None
return my_collection
work = del_item_begin(work)
print('--- After deletion of the first element ---')
item = work
while item:
print(item["name"])
item = item["next"]
def del_item_end(my_collection):
# if the collection is not empty
if my_collection:
# go to the last element
item = my_collection
while item["next"]:
item = item["next"]
# the last element will be removed and this will be a new last element
new_last_item = item['prev']
# if such new last element exists, we need to assign to the prev property value of None
if new_last_item:
new_last_item['next'] = None
else:
# but if the new last element is None, it means that we are removing the last element from the list
# so now, the collection is empty
my_collection = None
return my_collection
work = del_item_end(work)
print('--- After deletion of the last element ---')
item = work
while item:
print(item["name"])
item = item["next"]