Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions Sprint-2/implement_linked_list/linked_list.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# //operations
# `push_head` should add an element to the start of the list.
# It should return something that can be passed to `remove` to
# remove that element in the future.



# `pop_tail` should remove an element from the end of the list.
# * `remove` takes a handle from `push_head`,
# and removes that element from the list.

our_list = []
tracker_number = 0

def push_head(item_to_insert):
# // grab tracker
global tracker_number
# //assign so gets updated ///
id_for_this_particular_item = tracker_number
# //wrap item to unsert in {}
wrapped_item = {
"tracker": id_for_this_particular_item,
"inserted_item_key": item_to_insert
}

our_list.insert(0, wrapped_item)
tracker_number +=1
return id_for_this_particular_item

def remove(id_for_this_particular_item):
for item in our_list:
if item["tracker"] == id_for_this_particular_item:
our_list.remove(item)
return item

def pop_tail():
if len(our_list) > 0:
return our_list.pop()