School Commit Init
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user