DataStructuresAndAlgorithms/Codes/Practical-A4.py

169 lines
5.5 KiB
Python
Raw Normal View History

'''
Problem Statement: To create ADT that implement the "set" concept.
a. Add (newElement) -Place a value into the set
b. Remove (element) Remove the value
c. Contains (element) Return true if element is in collection
d. Size () Return number of values in collection Iterator () Return an iterator used to loop over collection
e. Intersection of two sets
f. Union of two sets
g. Difference between two sets
h. Subset
Code from Data Structures and Algorithms (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/DataStructuresAndAlgorithms/
'''
# BEGINNING OF CODE
setOne=[]
setTwo=[]
def addVal(Set):
# Function to add value to set
val = int(input("Value to add:\t"))
if (val in Set): # Checking if value already exists in set
print(f"{val} already exists in the set.")
else: # Adding value if does not exist
Set.append(val)
print(f"Set is:\t{Set}")
def delVal(Set):
# Function to delete value from set
val = int(input("Value to remove:\t"))
if(val not in Set): # Checking if value is not there in set
print(f"{val} is not present in the set.")
else: # Deleting value if it exists in set
Set.remove(val)
print(f"Set is:\t{Set}")
def searchVal(Set):
# Function to search value in set
val = int(input("Value to search:\t"))
if(val in Set): # Check if value is present in set
print(f"{val} is present in the set.")
else: # Print if value not present in set
print(f"{val} is not present in the set.")
def size(Set):
# Function to print size (length) of set
print(f"Size of set is:\t{len(Set)}")
2024-02-24 01:07:52 +05:30
def iterator(setA):
2024-02-24 01:15:24 +05:30
a = iter(setA) # iter is a built-in function
2024-02-24 01:07:52 +05:30
for i in range(0,len(setA)-1):
print(next(a),"->",end=' ')
print(next(a))
def intersection(setA, setB):
# Function to perform intersection of two sets
intersectionSet = []
for i in setA:
if i in setB:
intersectionSet.append(i)
print(f"Intersection is:\t{intersectionSet}")
def union(setA, setB):
# Function to perform union of two sets
unionSet = []
for i in setA:
unionSet.append(i)
for j in setB:
if j not in setA:
unionSet.append(j)
print(f"Union is:\t{unionSet}")
def difference(setA, setB):
# Function to perform difference of two sets
differenceSet = []
for i in setA:
if i not in setB:
differenceSet.append(i)
print(f"Difference is:\t{differenceSet}")
def subsetCheck(setA, setB):
# Function to check if two sets are subsets, called in subset()
for i in setB:
if i not in setA:
return False
return True
def subset(setA, setB):
# Function to print if two sets are subsets
if subsetCheck(setA,setB):
print("Set two is a subset of set one.")
else:
print("Set two is not a subset of set one.")
def main():
# Function for main menu
while (True):
print("--- MAIN MENU ---")
print("1 -> Add value to set")
print("2 -> Remove value from set")
print("3 -> Search value in set")
print("4 -> Show size of set")
2024-02-24 01:15:24 +05:30
print("5 -> Iterate")
print("6 -> Intersection of two sets")
print("7 -> Union of two sets")
print("8 -> Difference of two sets")
print("9 -> Subset of two sets")
print("10 -> Exit")
optn = int(input("Choose an option (1-10):\t"))
if (optn == 1):
setSel = int(input("Which set to operate on?\n1. Set one\n2. Set two\nSet 1/2:\t"))
total = int(input("Total values to add:\t"))
for i in range(total):
if (setSel == 1):
addVal(setOne)
elif (setSel == 2):
addVal(setTwo)
else:
print("\nPlease choose a valid option.\n")
elif (optn == 2):
setSel = int(input("Which set to operate on?\n1. Set one\n2. Set two\nSet 1/2:\t"))
if (setSel == 1):
delVal(setOne)
elif (setSel == 2):
delVal(setTwo)
else:
print("\nPlease choose a valid option.\n")
elif (optn == 3):
setSel = int(input("Which set to operate on?\n1. Set one\n2. Set two\nSet 1/2:\t"))
if (setSel == 1):
searchVal(setOne)
elif (setSel == 2):
searchVal(setTwo)
else:
print("\nPlease choose a valid option.\n")
elif (optn == 4):
setSel = int(input("Which set to operate on?\n1. Set one\n2. Set two\nSet 1/2:\t"))
if (setSel == 1):
size(setOne)
elif (setSel == 2):
size(setTwo)
else:
print("\nPlease choose a valid option.\n")
elif (optn == 5):
2024-02-17 18:39:00 +05:30
setSel = int(input("Which set to operate on?\n1. Set one\n2. Set two\nSet 1/2:\t"))
a = None
if (setSel == 1):
iterator(setOne)
elif (setSel == 2):
iterator(setTwo)
else:
print("\nPlease choose a valid option.\n")
elif (optn == 6):
intersection(setOne, setTwo)
elif (optn == 7):
union(setOne, setTwo)
elif (optn == 8):
difference(setOne, setTwo)
elif (optn == 9):
subset(setOne, setTwo)
elif (optn == 10):
print("\n\n## END OF CODE\n\n")
exit(1)
else:
print("Please choose a valid option (1-10).")
main() # Calling the main function
2024-02-17 18:39:00 +05:30
# END OF CODE