I’m having trouble trying to implement a linked List without using classes(we’re not there yet in my course), and google hasn’t helpful at all. Every linked list example uses classes, which I haven’t covered. I can create a linked list that adds a value to the beginning of the linked list, but I don’t know how to traverse the list and add value after a specific node. Any help would be appreciated. The hardest part for me is figuring out how to traverse the list.
def addValue(linkedSet, value):
"""
Adds a new element to a set.
Parameters:
the set to be changed (address of the first node)
the new value to add to the set
Return result: pointer to the head of the modified set. This is
usually the same as the linkedSet parameter, unless the value
added is less than any value already in the set.
If the value is already in the set, return the set unchanged.
This is not an error.
"""
newNode={}
newNode['data']=value
node=linkedSet
if linkedSet==None:
newNode['next']=None
return newNode
if member(linkedSet,value)==True:
return linkedSet
elif linkedSet['next']==None:
newNode['next']=None
linkedSet['next']=newNode
elif linkedSet['next']!=None:
return linkedSet
Just as a general outline of what I think your addValue() function might look like…
This is for a general linked list. It seems like you are suggesting that yours is a more specialized version that maintains a value sort, and always expects to be passed the head node of the list. Yours would require constant looping over each ‘next’ until it found one where the value was greater than the current, and then insert itself by shifting around the ‘next’ references of the following (and possibly previous) elements.