diff --git a/cs171/Lect09/hello.py b/cs171/Lect09/hello.py new file mode 100644 index 0000000000000000000000000000000000000000..e2c4f5f3339b62f66857704839b77d1db8bdec1b --- /dev/null +++ b/cs171/Lect09/hello.py @@ -0,0 +1,8 @@ + + +def swap(list, i, j): + temp = list[i] + list[i] = list[j] + list[j] = temp + + \ No newline at end of file diff --git a/cs171/hello.py b/cs171/hello.py deleted file mode 100644 index 061448a8d1383c3b10b99d3b4667be38bd953c3a..0000000000000000000000000000000000000000 --- a/cs171/hello.py +++ /dev/null @@ -1 +0,0 @@ -print("Hello CS 171") diff --git a/cs172/Lect09/BSTree.py b/cs172/Lect09/BSTree.py new file mode 100644 index 0000000000000000000000000000000000000000..d1af1ec773c80d2f1f85de34fe1d72c4eabe8e5a --- /dev/null +++ b/cs172/Lect09/BSTree.py @@ -0,0 +1,64 @@ +from Node import Node + +class BSTree: + + def __init__(self): + self.__root = None + + def __str__(self): + return str(self.__root) + + def contains(self, value, parent="ROOT"): + if str(parent) == "ROOT": + parent = self.__root + + if parent is None: + return False + + if parent.getData() == value: + return True + elif value < parent.getData(): + return self.contains(value, parent.getLeft()) + else: + return self.contains(value, parent.getRight()) + + + def insert(self, value, parent="ROOT"): + + if self.__root is None: + self.__root = Node(value) + else: + if str(parent) == "ROOT": + parent = self.__root + + if value <= parent.getData(): + if(parent.getLeft() is None): + # Place it to the left + parent.setLeft(Node(value)) + else: + self.insert(value, parent.getLeft()) + else: + if(parent.getRight() is None): + # Place it to the right + parent.setRight(Node(value)) + else: + self.insert(value, parent.getRight()) + +if __name__ == "__main__": + + myTree = BSTree() + myTree.insert(8) + myTree.insert(6) + myTree.insert(7) + print(myTree.contains(5)) + +# root = Node(25) +# left = Node(10) +# right = Node(50) +# +# root.setLeft(left) +# root.setRight(right) +# +# print(root) +# print(root.getLeft()) +# print(root.getRight()) diff --git a/cs172/Lect09/Node..py b/cs172/Lect09/Node..py new file mode 100644 index 0000000000000000000000000000000000000000..c1615c851bc95a1b311f2adf8c81cd473044de90 --- /dev/null +++ b/cs172/Lect09/Node..py @@ -0,0 +1,21 @@ +class Node: + + def __init__(self, data, left=None, right=None): + self.__data = data + self.__left = left + self.__right = right + + def setLeft(self, newLeft): + self.__left = newLeft + + def setRight(self, newRight): + self.__right = newRight + + def getLeft(self): + return self.__left + + def getRight(self): + return self.__right + + def getData(self): + return self.__data \ No newline at end of file diff --git a/cs172/Lect09/Node.py b/cs172/Lect09/Node.py new file mode 100644 index 0000000000000000000000000000000000000000..f54d749d63b5f4493bbf70ce9135b2b7a9892672 --- /dev/null +++ b/cs172/Lect09/Node.py @@ -0,0 +1,39 @@ +class Node: + + def __init__(self, data, left=None, right=None): + self.__data = data + self.__left = left + self.__right = right + + def setLeft(self, newLeft): + self.__left = newLeft + + def setRight(self, newRight): + self.__right = newRight + + def getLeft(self): + return self.__left + + def getRight(self): + return self.__right + + def getData(self): + return self.__data + + def __str__(self): + return str(self.__data) + + def __lt__(self, other): + return self.__data < other.getData() + + def __gt__(self, other): + return self.__data > other.getData() + + def __eq__(self, other): + return self.__data == other.getData() + + def __le__(self, other): + return self.__data <= other.getData() + + def __ge__(self, other): + return self.__data >= other.getData() \ No newline at end of file diff --git a/cs172/hello.py b/cs172/Lect09/hello.py similarity index 100% rename from cs172/hello.py rename to cs172/Lect09/hello.py