网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。
A.采用不含头结点的单链表且栈顶元素放在表尾结点
B.采用不含头结点的单链表且栈顶元素放在表头结点
C.采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点
D.采用含头结点的双向链表且栈顶元素放在表尾结点
B.采用不含头结点的单链表且栈顶元素放在表头结点
C.采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点
D.采用含头结点的双向链表且栈顶元素放在表尾结点
参考答案
参考解析
解析:本题考查数据结构基础知识。
栈的操作要求是后进先出,而且仅在表尾一端加入和删除元素。对单链表进行操作时,必须从头指针出发。根据栈的操作要求,单循环链表和双向链表都是没有必要的,而且选项c中将栈顶元素任意存放是错误的。
可以采用单链表作为栈的存储结构,将表头作为栈顶来使用。
含头结点的单链表如下图所示,其中La为头指针,La指向的结点为头结点。
不含头结点且栈顶元素放在表尾结点的单链表如下图所示,其中La为头指针,La指向的结点存储了先进入栈且没有出栈的元素。显然,因为要从La出发遍历至表尾才能进行入栈和出栈操作,在这种情况下出栈和入栈都是最低效的,时间复杂度都是O(n)。
如果采用不含头结点且栈顶元素放在表头的单链表,如下图所示,出栈和入栈操作都在表头,时间复杂度都为O(1)。
栈的操作要求是后进先出,而且仅在表尾一端加入和删除元素。对单链表进行操作时,必须从头指针出发。根据栈的操作要求,单循环链表和双向链表都是没有必要的,而且选项c中将栈顶元素任意存放是错误的。
可以采用单链表作为栈的存储结构,将表头作为栈顶来使用。
含头结点的单链表如下图所示,其中La为头指针,La指向的结点为头结点。
不含头结点且栈顶元素放在表尾结点的单链表如下图所示,其中La为头指针,La指向的结点存储了先进入栈且没有出栈的元素。显然,因为要从La出发遍历至表尾才能进行入栈和出栈操作,在这种情况下出栈和入栈都是最低效的,时间复杂度都是O(n)。
如果采用不含头结点且栈顶元素放在表头的单链表,如下图所示,出栈和入栈操作都在表头,时间复杂度都为O(1)。
更多 “若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。A.采用不含头结点的单链表且栈顶元素放在表尾结点 B.采用不含头结点的单链表且栈顶元素放在表头结点 C.采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点 D.采用含头结点的双向链表且栈顶元素放在表尾结点 ” 相关考题
考题
下列叙述中正确的是()A.带链栈的栈底指针是固定的B.带链栈的栈底指针是随栈的操作而动态变化的C.若带链队列的队头指针与队尾指针相同,则队列为空D.若带链队列的队头指针与队尾指针相同,则队列中至少有一个元素
考题
● 若一个栈以向量V[1..n]存储,初始使栈指针top为n,则下面x入栈的正确操作是()。设top指针指向栈顶元素。() A. top=top+1;V[top]=x B. V[top]=x;top=top+1C. top=top-1;V[top]=x D. V[top]=x ;top=top-1
考题
下面关于栈和队列的叙述,错误的是( )。A.栈和队列都是操作受限的线性表B.队列采用单循环链表存储时,只需设置队尾指针就可使入队和出队操作的时间复杂度都为O(1)C.若队列的数据规模n可以确定,则采用顺序存储结构比链式存储结构效率更高D.利用两个栈可以模拟一个队列的操作,反之亦可
考题
若push、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为(29)。A.321B.213C.231D.123
考题
若pllsh、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为 ______。A.321B.213C.231D.123A.B.C.D.
考题
已知栈S 初始为空,用 I 表示入栈、O表示出栈,若入栈序列为a1a2a3a4a5,则通过栈 S 得到出栈序列a2a4a5a3a1的合法操作序列( )。A.IIOIIOIOOOB.IOIOIOIOIOC.IOOIIOIOIOD.IIOOIOIOOO
考题
若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。A.采用不含头结点的单链表且栈顶元素放在表尾结点B.采用不含头结点的单链表且栈顶元素放在表头结点C.采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点D.采用含头结点的双向链表且栈顶元素放在表尾结点
考题
●设push、pop分别表示入栈、出栈操作,若初始栈为空,对于元素序列a b c,则操作序列push、pop、pop、push、push、pop (36)。(36)A.得到出栈序列为abcB.得到出栈序列为bacC.得到出栈序列为bcaD.是非法的操作序列
考题
栈的特点是后进先出,若用单链表作为栈的存储结构,并用头指针作为栈顶指针,则( )。A.入栈和出栈操作都不需要遍历链表
B.入栈和出栈操作都需要遍历链表
C.入栈操作需要遍历链表而出栈操作不需要
D.入栈操作不需要遍历链表而出栈操作需要
考题
假定利用数组A[N]顺序存储一个栈,top表示栈顶指针,已知栈未满,则x入栈时所执行的操作是()。A、a[--top]=xB、a[top--]=xC、a[++top]=xD、a[top++]=x
考题
设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题: (1)若入、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列为何?(这里Push(i)表示i进栈,Pop()表示出栈) (2)能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。 (3)请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。
考题
单选题设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为( )。A
top=top+1;B
top=top-1;C
top-next=top;D
top=top-next;
考题
单选题假定利用数组A[N]顺序存储一个栈,top表示栈顶指针,已知栈未满,则x入栈时所执行的操作是()。A
a[--top]=xB
a[top--]=xC
a[++top]=xD
a[top++]=x
热门标签
最新试卷