在n个结点的线性表的数组表示中,以下算法的时间复杂度是O(1)的操作是( )。Ⅰ.访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)Ⅱ.在最后一个结点后插入一个新的结点Ⅲ.删除第一个结点Ⅳ.在第i个结点后插入一个结点(1<=i<=n)
【正确答案】 C
【答案解析】解析:Ⅰ:由于线性表是用数组表示,即顺序存储,可以直接通过结点编号访问,所以Ⅰ的时间复杂度一定是O(1)。 Ⅱ:由于是在最后一个结点处插入一个结点,所以不需要移动元素,故时间复杂度为O(1)。 Ⅲ:删除第一个结点之后,需要将后续所有结点往前移动,所以时间复杂度为O(n)。 Ⅳ:由于i是不固定的,所以后续结点i+1,1+2,…,n—1,都需要向后移动,所以时间复杂度为O(n)。