$A.$ An optimal binary search tree is a binary search tree for which the nodes are arranged on levels such that the tree cost is minimum and it can be performed efficiently using Dynamic programming.click here
when $j\geq i $ $\bigg\{E = E[i,r-1] + E[r+1,j] + W(i,j)\bigg\} $
when $j\geq i $ $\Big\{W(i,j) = \Sigma^j_{l=i} p_l + \Sigma^l_{l=i-1} q_l \Big\}$
$B.$ To find Connected components we can start with either BFS or DFS but DFS is preffered over BFS because BFS takes exponential amount of memory whereas DFS takes linear amount of memory
$C.$ Using prefix and postfix the binary tree cannot be uniquely constructed check here
$D.$ It can be used and it consumes linear amount of memory
So $B$ is right answer