initial commit

main
Tylan Tyson 1 year ago
commit 3a53adfd79

1
.gitignore vendored

@ -0,0 +1 @@
.DS_STORE

@ -0,0 +1,16 @@
2
3
6
9
11
14
18
21
27
37
834
9333
93403
349202
2349025
32568538

@ -0,0 +1,7 @@
klasdjf;
dsafasf
adsfasfd
hello
adsfasfdasdf
adsfasfdasdfad
adsfasfd

@ -0,0 +1,107 @@
# Linear Search
def linearSearch ( data, target ):
for index, dataItem in enumerate(data):
if dataItem == target:
return index
return None
# Binary Search
def binarySearch (data, target ):
while True:
dataItem = data[len(data)//2]
if dataItem == target:
return len(data)//2
elif dataItem < target:
data = data[len(data)//2:]
elif dataItem > target:
data = data[:len(data)//2]
elif len(data) == 1:
return None
# Node Class
class Node:
# Constructor
def __init__(self, value):
self.value = value
self.leftNode = None
self.rightNode = None
# Binary Tree Class
class BinaryTree:
# Constructor
def __init__(self, value):
self.tree = Node(value)
# Traverse
@staticmethod
def __traverse(node, directions):
for direction in directions:
if direction == "left":
node = node.leftNode
if direction == "right":
node = node.rightNode
return node
# Add Node
def add_node(self, value):
tree = self.tree
while True:
if value > tree.value:
if tree.rightNode is None:
tree.rightNode = Node(value)
break
else:
tree = self.__traverse(tree, ["right"])
if value < tree.value or value == tree.value:
if tree.leftNode is None:
tree.leftNode = Node(value)
break
else:
tree = self.__traverse(tree, ["left"])
# Left Branch
@staticmethod
def __left_branch(node_tree):
if node_tree.leftNode is not None:
print(f"Parent: {node_tree.value}, Left Child: {node_tree.leftNode.value}")
return node_tree.leftNode
return None
# Right Branch
@staticmethod
def __right_branch(node_tree):
if node_tree.rightNode is not None:
print(f"Parent: {node_tree.value}, Right Child: {node_tree.rightNode.value}")
return node_tree.rightNode
return None
# Display Tree
def display_tree(self, node_tree):
left_node = self.__left_branch(node_tree)
right_node = self.__right_branch(node_tree)
if left_node is not None:
self.display_tree(left_node)
if right_node is not None:
self.display_tree(right_node)
# Read Data
with open("./data/string.txt", "r") as file:
textArray = file.read().split("\n")
with open("./data/numbers.txt", "r") as file:
numberArray = file.read().split("\n")
for itemIndex, item in enumerate(numberArray):
numberArray[itemIndex] = int(item)
# Searches
print(linearSearch(textArray, "hello"))
print(binarySearch(numberArray, 11))
# Binary Tree
tree = BinaryTree(0)
tree.add_node(8)
tree.add_node(-4)
tree.add_node(-1)
tree.add_node(10)
tree.add_node(-6)
tree.add_node(-5)
tree.add_node(7)
tree.add_node(11)
tree.add_node(0)
tree.add_node(69)
tree.add_node(68)
tree.display_tree(tree.tree)
Loading…
Cancel
Save