Question: Python 3 Linked List Delete Element Problem Implement two functions 1. remove_last: takes a linked list as a parameter and removes the last element. Make

Python 3 Linked List Delete Element Problem

Implement two functions

1. remove_last: takes a linked list as a parameter and removes the last element. Make sure to check all possible cases for the possible sizes of the linked list. Use assert statement(s).

def remove_last(s):

''' Removes the last node in the given list

>>> remove_last(link(4,link(3, link(2, link(1, 'empty')))))

[4, [3, [2, 'empty']]]

>>> remove_last(link(1, 'empty'))

'empty'

'''

"*** YOUR CODE HERE ***"

2. delete_at: takes a linked-list, and a deletion index and returns the reconstructed list with the element at the given location removed.

def delete_at(s, idx):

'''Delete element in a given list at provided index.

Please fill in the provided assert statements and do not

modify the printed msg.

>>> lst = link(3, link(2, link(1, empty)))

>>> delete_at(lst, 0)

[2, [1, 'empty']]

>>> delete_at(lst, 2)

[3, [2, 'empty']]

'''

"*** YOUR CODE HERE ***"

ONLY USE FUNTIONS BELOW:

empty = 'empty'

def is_link(s):

"""s is a linked list if it is empty or a (first, rest) pair."""

return s == empty or (len(s) == 2 and is_link(s[1]))

def link(first, rest):

"""Construct a linked list from its first element and the rest."""

assert is_link(rest), "rest must be a linked list."

return [first, rest]

def first(s):

"""Return the first element of a linked list s."""

assert is_link(s), "first only applies to linked lists."

assert s != empty, "empty linked list has no first element."

return s[0]

def rest(s):

"""Return the rest of the elements of a linked list s."""

assert is_link(s), "rest only applies to linked lists."

assert s != empty, "empty linked list has no rest."

return s[1]

def len_link(s):

"""Return the length of linked list s."""

length = 0

while s != empty:

s, length = rest(s), length + 1

return length

def getitem(s, i):

"""Return the element at index i of linked list s."""

while i > 0:

s, i = rest(s), i - 1

return first(s)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!