chap patterns of algorithms further reading for further information on skip listssee "skip listsa probabilistic alternative to balanced treesby william pugh [pug exercises solve towers of hanoi using dynamic programming algorithm there are six permutations of the lines for (int = < () ++for (int = < () ++for (int = < () ++in floyd' algorithm which ones give correct algorithm show the result of running floyd' all-pairs shortest-paths algorithm on the graph of figure the implementation for floyd' algorithm given in section is inefficient for adjacency lists because the edges are visited in bad order when initializing array what is the cost of of this initialization step for the adjacency listhow can this initialization step be revised so that it costs th(| | in the worst case state the greatest possible lower bound that you can for the all-pairs shortestpaths problemand justify your answer show the skip list that results from inserting the following values draw the skip list after each insert with each valueassume the depth of its corresponding node is as given in the list value depth if we had linked list that would never be modifiedwe can use simpler approach than the skip list to speed access the concept would remain the same in that we add additional pointers to list nodes for efficient access to the ith element how can we add second pointer to each element of singly linked list to allow access to an arbitrary element in (log ntime