diff --git a/cs172/Lect07/hello.py b/cs172/Lect07/hello.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/cs172/Lect07/linkedlist.py b/cs172/Lect07/linkedlist.py new file mode 100644 index 0000000000000000000000000000000000000000..6acfabade33da1ff8b60191a3b25a3ec87263e4e --- /dev/null +++ b/cs172/Lect07/linkedlist.py @@ -0,0 +1,51 @@ +from node import Node + +class LinkedList: + + def __init__(self): + self.__head = None + self.__tail = None + + def isEmpty(self): + return self.__head is None + + def append(self, value): + if self.isEmpty(): + self.__head = Node(value) + self.__tail = self.__head + else: + self.__tail.setNext(Node(value)) + self.__tail = self.__tail.getNext() + + def __str__(self): + #return str(self.__head) + myStr = '' + current = self.__head + while current is not None: + myStr += str(current.getData()) + " --> " + current = current.getNext() + myStr += '🛑' + return myStr + + def __len__(self): + if self.isEmpty(): + return 0 + else: + count = 1 + # Traverse + here = self.__head + while here.getNext() is not None: + here = here.getNext() + count += 1 + return count + +if __name__ == "__main__": + myList = LinkedList() + print(myList.isEmpty()) + print(len(myList)) + myList.append("A") + print(len(myList)) + myList.append("B") + myList.append("C") + print(myList.isEmpty()) + print(myList) \ No newline at end of file diff --git a/cs172/Lect07/node.py b/cs172/Lect07/node.py new file mode 100644 index 0000000000000000000000000000000000000000..195b3b3d2d670662a70b815971be93dabd1b3e63 --- /dev/null +++ b/cs172/Lect07/node.py @@ -0,0 +1,31 @@ + +class Node: + + def __init__(self, data, next=None): + self.__data = data + self.__next = next + + def getData(self): + return self.__data + + def getNext(self): + return self.__next + + def setNext(self, next): + self.__next = next + + def __str__(self): + return "A node containing " + str(self.getData()) + \ + " whose next is " + str(self.getNext()) + +if __name__ == "__main__": + myNode = Node("A") + print(myNode.getData()) + print(myNode.getNext()) + print(myNode) + + yourNode = Node("Z", myNode) + + print(yourNode) + + #print(yourNode.getNext().getData()) \ No newline at end of file