School Commit Init

This commit is contained in:
2024-08-31 12:07:21 +03:00
commit 0b130ee18c
2801 changed files with 4720552 additions and 0 deletions
@@ -0,0 +1,39 @@
class Bag:
def __init__(self):
self.__elements = []
def add(self, e):
self.__elements.append(e)
def remove(self, e):
if e in self.__elements:
self.__elements.remove(e)
return True
return False
def search(self, e):
return e in self.__elements
def size(self):
return len(self.__elements)
def nrOccurrences(self, e):
return self.__elements.count(e)
def destroy(self):
del(self)
def iterator(self):
return BagIterator(self.__elements)
class BagIterator:
def __init__(self, elements):
self.__elements = elements
self.__current = 0
def first(self):
self.__current = 0
def valid(self):
return self.__current < len(self.__elements)
def next(self):
if self.valid():
self.__current += 1
def getCurrent(self):
if self.valid():
return self.__elements[self.__current]
else:
raise ValueError("Invalid iterator position.")
@@ -0,0 +1,46 @@
from Bag import Bag, BagIterator
def createIntBag():
intBag=Bag()
intBag.add(6)
intBag.add(11)
intBag.add(77)
intBag.add(7)
intBag.add(4)
intBag.add(6)
intBag.add(77)
intBag.add(6)
return intBag
def createStringBag():
stringBag=Bag()
stringBag.add("data")
stringBag.add("structures")
stringBag.add("and")
stringBag.add("algorithms")
stringBag.add("data")
stringBag.add("data")
stringBag.add("algorithms")
return stringBag
def printBag(bag):
it = bag.iterator()
while it.valid():
print(it.getCurrent())
it.next()
print("Over. Let's start again.")
it.first()
while it.valid():
print(it.getCurrent())
it.next()
def main():
b1 = createIntBag()
printBag(b1)
print("No occurrences of 77: ", b1.nrOccurrences(77))
b2 = createStringBag()
printBag(b2)
print("No occurrences of 'data': ", b2.nrOccurrences("data"))
if __name__ == "__main__":
main()