下面关于栈和队列的叙述中,错误的是()。A.栈和队列都是操作受限的线性表 B.

题库2022-08-02  39

问题 下面关于栈和队列的叙述中,错误的是()。A.栈和队列都是操作受限的线性表B.队列采用单循环链表存储时,只需设置队尾指针就可使入队和出队操作的时间复杂度都为O(1)C.若队列的数据规模n可以确定,则采用顺序存储结构比链式存储结构效率更高D.利用两个栈可以模拟一个队列的操作,反之亦可

选项 A.栈和队列都是操作受限的线性表
B.队列采用单循环链表存储时,只需设置队尾指针就可使入队和出队操作的时间复杂度都为O(1)
C.若队列的数据规模n可以确定,则采用顺序存储结构比链式存储结构效率更高
D.利用两个栈可以模拟一个队列的操作,反之亦可

答案 D

解析 栈和队列都是操作受限的线性表:栈仅在表尾插入和删除元素;队列仅在表头删除元素、在表尾插入元素。采用单循环链表表示队列的示意图如下图所示:①入队时,新元素在an之后,若新元素节点指针为s,则在一般情况下入队操作序列表示为s-小于next=rear-小于next;rear-小于next=s;rear=s;。②出队时,将队头元素a,从队列中删除,一般情况下出队操作序列表示为:q=rear-小于next;//q指向队头元素所在节点rear-小于next=q-小于next;free(q);入队时初始队列为空、出队后队列变为空要进行特殊处理。入队操作和出队操作均与队列长度无关,因此其时间复杂度都为O(1)。队列是先入先出的线性表,栈是后进先出的线性表。一个线性序列经过队列结构后只能得到与原序列相同的元素序列,而经过一个栈结构后则可以得到多种元素序列。用两个栈可以模拟一个队列的入队和出队操作。
转载请注明原文地址:https://tihaiku.com/congyezige/2408530.html

最新回复(0)