# Programming, Data Structures And Algorithms Using Python - Week 6 Quiz | NPTEL | [Jan 2023]

## Suppose u and v both denote sets in Python. Under what condition can we guarantee that u-(u-v) == v?

a. The sets u and v should be disjoint.
b. The set u should be a subset of the set v
c. The set v should be a subset of the set u
d. This is true for any u and v.

c. The set v should be a subset of the set u
Here's the Python code to demonstrate this:

```# Example sets
u = {1, 2, 3, 4, 5}
v = {3, 4, 5}

# Calculate u - (u - v)
result = u - (u - v)

# Check if result is equal to v
if result == v:
print("u - (u - v) is equal to v")
else:
print("u - (u - v) is not equal to v")

Output: u - (u - v) is equal to v```

Explanation:

u - v gives a set of elements in u that are not in v. This will be {1, 2} in this example.
u - (u - v) gives a set of elements in u that are not in the set {1, 2}. Since {1, 2} is a subset of u, this will be {3, 4, 5}.
Therefore, u - (u - v) gives the same set as v if and only if v is a subset of u.

## Suppose u and v both denote sets in Python. Under what condition can we guarantee that u|v == u^v?

a. The sets u and v should be disjoint.
b. The set v should be a subset of the set u.
c. The set u should be a subset of the set v.
d. This is true for any u and v.

a. The sets u and v should be disjoint.
Here is the python code to demonstrate this:

```u = {1, 2, 3}
v = {4, 5, 6}

# Union of u and v
union = u | v

# Symmetric difference of u and v
symmetric_diff = u ^ v

if union == symmetric_diff:
print("u|v == u^v")
else:
print("u|v != u^v")```

Output:
u|v == u^v

In this example, u and v are disjoint sets, meaning they have no common elements. The union of u and v is the set of all elements in u and v, while the symmetric difference of u and v is the set of elements that are in u or v, but not in both. Since u and v have no common elements, their union and symmetric difference are the same, and the condition u|v == u^v is satisfied.

## Which of the following does not correspond to a max-heap on the list of values [19, 28, 29, 31, 31, 45, 55, 72, 83, 97]?

a. [97, 83, 45, 55, 72, 28, 31, 19, 31, 29]
b. [97, 55, 83, 29, 45, 72, 31, 19, 31, 28]
c. [97, 83, 55, 72, 31, 45, 29, 19, 31, 28]
d. [97, 55, 83, 45, 29, 72, 31, 19, 31, 28]

b. [97, 55, 83, 29, 45, 72, 31, 19, 31, 28]

## Consider the max-heap [96, 96, 55, 74, 37, 42, 29, 18, 31, 19]. Suppose we apply the operation delete_max() twice to this max-heap. The resulting max-heap is:

a. [74, 37, 55, 19, 31, 42, 29, 18]
b. [74, 37, 55, 31, 19, 29, 42, 18]
c. [74, 37, 55, 31, 18, 42, 29, 19]
d. [74, 37, 55, 31, 19, 42, 29, 18]