Professor Pisano has proposed the following variant of the FIB-HEAP-DELETE\text{FIB-HEAP-DELETE} procedure, claiming that it runs faster when the node being deleted is not the node pointed to by H.minH.min.

cpp PISANO-DELETE(H, x) if x == H.min FIB-HEAP-EXTRACT-MIN(H) else y = x.p if y != NIL CUT(H, x, y) CASCADING-CUT(H, y) add x's child list to the root list of H remove x from the root list of H

a. The professor's claim that this procedure runs faster is based partly on the assumption that line 7 can be performed in O(1)O(1) actual time. What is wrong with this assumption?

b. Give a good upper bound on the actual time of PISANO-DELETE\text{PISANO-DELETE} when xx is not H.minH.min. Your bound should be in terms of x.degreex.degree and the number cc of calls to the CASCADING-CUT\text{CASCADING-CUT} procedure.

c. Suppose that we call PISANO-DELETE(H,x)\text{PISANO-DELETE}(H, x), and let HH' be the Fibonacci heap that results. Assuming that node xx is not a root, bound the potential of HH' in terms of x.degreex.degree, cc, t(H)t(H), and m(H)m(H).

d. Conclude that the amortized time for PISANO-DELETE\text{PISANO-DELETE} is asymptotically no better than for FIB-HEAP-DELETE\text{FIB-HEAP-DELETE}, evenwhen xH.minx \ne H.min.

a. It can take actual time proportional to the number of children that xx had because for each child, when placing it in the root list, their parent pointer needs to be updated to be NIL\text{NIL} instead of xx.

b. Line 7 takes actual time bounded by x.degreex.degree since updating each of the children of xx only takes constant time. So, if cc is the number of cascading cuts that are done, the actual cost is O(c+x.degree)O(c + x.degree).

c. From the cascading cut, we marked at most one more node, so, m(H)1+m(H)m(H') \le 1 + m(H) regardless of the number of calls to cascading cut, because only the highest thing in the chain of calls actually goes from unmarked to marked.

Also, the number of children increases by the number of children that xx had, that is t(H)=x.degree+t(H)t(H') = x.degree + t(H). Putting these together, we get that

Φ(H)t(H)+x.degree+2(1+m(H)).\Phi(H') \le t(H) + x.degree + 2(1 + m(H)).

d. The asymptotic time is

Θ(x.degree)=Θ(lg(n)),\Theta(x.degree) = \Theta(\lg(n)),

which is the same asyptotic time that was required for the original deletion method.