- Unsorted Doubly Linked List (P): Merging two such lists is done by linking the tail of one list to the head of the other, which is a \( O(1) \) operation. The operation simply involves adjusting the pointers of the last node of one list and the first node of the other, making it a constant time operation. Hence, the worst-case time complexity is \( \mathbf{\Theta(1)} \).
- Min-Heap Implemented Using an Array (Q): Merging two heaps requires inserting all elements of one heap into the other, which takes \( O(n) \) time in the worst case. Inserting an element into a heap typically takes \( O(\log n) \) time, and since all elements from the second heap need to be inserted, the total time complexity is \( O(n) \). Hence, the worst-case time complexity is \( \mathbf{\Theta(n)} \).
- Binary Search Tree (R): In the worst case (e.g., skewed BSTs), merging two BSTs requires an inorder traversal to collect all elements of both trees and then reconstructing a new BST. The inorder traversal takes \( O(n) \) time, and reconstructing the tree from the sorted list of elements also takes \( O(n) \) time. Thus, the worst-case time complexity is \( \mathbf{\Theta(n)} \).
Thus, the worst-case complexities are \( \mathbf{\Theta(1)} \) for P, \( \mathbf{\Theta(n)} \) for Q, and \( \mathbf{\Theta(n)} \) for R, which matches option (A).