在链表结构中,采用()可以用最少的空间代价和最高的时间效率实现队列结构。
A.仅设置尾指针的单向循环链表
B.仅设置头指针的单向循环链表
C.仅设置尾指针的双向链表
D.仅设置头指针的双向链表
参考答案:A
解析:
从空间的角度考虑,采用链表作为存储结构,应当使用单链表,没有必要采用双向链表从两个方向遍历元素。所以排除选项C和选项D。 队列的特点是,先进先出。从时间效率的角度考虑,同时具有头指针和尾指针的话,入队和出队操作最为简单。但题目中仅仅给出了只有头指针或者只有尾指针的情况。
那么:
①如果仅仅设置头指针,那么,删除元素时,只要修改第一个元素的指向即可。如果要插入元素,则需要遍历整个链表,才能到达尾指针的位置。
②如果仅仅设置尾指针,那么,如果要实现删除操作,可以取尾指针域的值,直接获得头指针。如果要执行插入操作,那么,修改两个尾指针的指针域以及新插入结点的指针域即可。 通过比较,仅仅设置尾指针,更节省时间。
选项A是正确答案。