###################################################################### # Class definitions ###################################################################### class LinkedList(): __slots__ = ("head","size") class Node(): __slots__ = ("data", "next") ###################################################################### # Class builders ###################################################################### def mkLinkedList(): """Builder: mkList: () -> LinkedList""" lst = LinkedList() lst.head = None lst.size=0 return lst def mkNode( data, lst ): """Builder: Node -> Node""" node = Node() node.data = data node.next = lst return node ###################################################################### # Function definitions ###################################################################### def display( lst ): pass def size( lst ): pass def get( lst, pos ): pass def getItr(l1): pass def nxt(itr): pass def hasNxt(itr): pass def isEnd(itr): pass def index( lst, ele ): pass def append( lst, ele ): pass def insert( lst, ele, pos ): pass def remove( lst, pos ): pass ###################################################################### # test function definitions ###################################################################### def initTestLists(): l1 = mkLinkedList() l2 = mkLinkedList() append(l2,"p") l3 = mkLinkedList() append(l3,'a') append(l3,'b') append(l3,'c') return l1,l2,l3 def printTest(l1,l2,l3): print("list1: ", end="" ) display( l1 ) print("list2: ", end="" ) display( l2 ) print("list3: ", end="" ) display( l3 ) print("=========================") def test(): l1,l2,l3 = initTestLists() print("size l1=",size(l1)) print("size l2=",size(l2)) print("size l3=",size(l3)) printTest(l1,l2,l3) l1,l2,l3 = initTestLists() print("get l2 #0",get(l2,0)) print("get l3 #0",get(l3,0)) print("get l3 #1",get(l3,1)) print("get l3 #2",get(l3,2)) printTest(l1,l2,l3) l1,l2,l3 = initTestLists() print("index l1 'b'",index(l2,"b")) print("index l2 'p'",index(l2,"p")) print("index l2 'a'",index(l2,"a")) print("index l3 'a'",index(l3,"a")) print("index l3 'b'",index(l3,"b")) print("index l3 'c'",index(l3,"c")) print("index l3 'p'",index(l3,"p")) printTest(l1,l2,l3) l1,l2,l3 = initTestLists() append(l1,"Z") append(l2,"Z") append(l3,"Z") printTest(l1,l2,l3) l1,l2,l3 = initTestLists() insert(l1,"Z",0) insert(l1,"Y",0) insert(l2,"Z",1) insert(l3,"P",1) insert(l3,"Z",4) printTest(l1,l2,l3) l1,l2,l3 = initTestLists() print("remove l2 #0",remove(l2,0)) print("remove l3 #0",remove(l3,0)) print("remove l3 #0",remove(l3,0)) print("remove l3 #0",remove(l3,0)) printTest(l1,l2,l3) l1,l2,l3 = initTestLists() print("remove l3 #1",remove(l3,1)) print("remove l3 #1",remove(l3,1)) print("remove l3 #0",remove(l3,0)) printTest(l1,l2,l3) """ if __name__ == "__main__": test() """ n3 = mkNode('c',None) n2 = mkNode('b',n3) n1 = mkNode('a', n2) display(n1) print("length of n1 is", size(n1))