一、单项选择题
————————————————————
————————————————————
解析:栈和队列的逻辑结构都是相同的,都属于线性结构,只是它们对数据的运算不同。
正确答案:B
————————————————————
————————————————————
解析:
限制存取点的线性结构指的是数据结构中,数据的存取操作受到限制,只能在特定的位置(如栈的顶部或队列的头部尾部)进行插入和删除操作的数据结构。
首先栈是一种线性表,所以B、D错。按存储结构的不同可分为顺序栈和链栈,但不可以把栈局限在某种存储结构上,所以A错。栈和队列都是限制存取点的线性结构。
正确答案:C
————————————————————
————————————————————
解析:基本操作是指该结构最核心、最基本的运算,其他较复杂的操作可通过基本操作实现。删除栈底元素不属于栈的基本运算,但它可以通过调用栈的基本运算求得。
正确答案:B
————————————————————
————————————————————
解析:数组下标范围为0~n-1,初始时top为1,第一个元素入栈后,top为0,即top指向栈顶元素。栈向高地址方向增长,所以入栈时应先将指针top加1,然后存入元素x,C正确。
正确答案:C
————————————————————
————————————————————
解析:数组下标范围为1~n,初始时top为1,表示top指向栈顶元素的下一个元素。栈向高地址方向增长,所以入栈时应先存入元素x,然后将指针top加1,B正确。
正确答案:B
————————————————————
————————————————————
解析:数组下标范围为1~n,初始时top为n+1,表示top指向栈顶元素。栈向低地址方向增长,所以入栈时应先将指针top 减1,然后存入元素x,A正确。
正确答案:A
————————————————————
————————————————————
解析:每个元素需要1个存储单元,所以每入栈一次top加1,出栈一次top减1。指针top的值依次为1001H,1002H,1001H,1002H,1001H,1002H,1001H,1002H。
正确答案:A
————————————————————
————————————————————
解析:顺序栈采用数组存储,数组的大小是固定的,不能动态地分配大小。和顺序栈相比,链栈的最大优势在于它可以动态地分配存储空间。
正确答案:A
————————————————————
————————————————————
解析:
单循环链表进行删除插入操作时还需更新表尾结点。
对于双向循环链表,不管是表头指针还是表尾指针,都可以很方便地找到表头结点,方便在表头做插入或删除操作。而单循环链表通过尾指针可以很方便地找到表头结点,但通过头指针找尾结点需要遍历一次链表。对于C,插入和删除结点后,找尾结点所需的时间为O(n)。
正确答案:C
————————————————————
————————————————————
解析:链栈采用不带头结点的单链表表示时,进栈操作在首部插入一个结点x(即x->next=top),插入完后需将top 指向该插入的结点x。请思考当链栈存在头结点时的情况。
正确答案:C
————————————————————
————————————————————
解析:这里假设栈顶指针指向的是栈顶元素,所以选D;而A中首先将top指针赋给了x,错误;B中没有修改top指针的值;C为top指针指向栈顶元素的上一个元素时的答案。
正确答案:D
————————————————————
————————————————————
解析:执行前3句后,栈st内的值为a, b,其中b为栈顶元素;执行第4句后,栈顶元素b出栈,×的值为b:执行最后一句,读取栈顶元素的值,x的值为a。
正确答案:A
————————————————————
————————————————————
解析:考题中给出的n值不会很大,可以根据栈的特点,若X已经出栈,则X前面的尚未出栈的元素一定逆置有序地出栈,因此可采用例举方法。如 a, b, c依次进栈的出栈序列有abc, acb, bac,bca, cba。另外,在一些考题中可能会问符合某个特定条件的出栈序列有多少种,比如此题中的问以b开头的出栈序列有几种,这种类型的题目一般都使用穷举法。
正确答案:B
————————————————————
————————————————————
解析:根据栈“先进后出”的特点,且在进栈操作的同时允许出栈操作,显然答案D中c最先出栈,则此时栈内必定为α和b,但因为α先于b进栈,所以要晚出栈。对于某个出栈的元素,在它之前进栈却晚出栈的元素必定是按逆序出栈的,其余答案均是可能出现的情况。
正确答案:D
————————————————————
————————————————————
解析:假设出栈序列为cd....分析栈的操作序列: α进栈,b进栈,c进栈,c出栈,d进栈,d出栈,此后只能是b出栈和α出栈一种情况,因此出栈序列只有cdba。
正确答案:A
————————————————————
————————————————————
解析:采用排除法,选项A,B,C得到的出栈序列分别为1243,3241,1324。由1234得到1342的进出栈序列为:1进,1出,2进,3进,3出,4进,4出,2出,所以选D。
正确答案:D
————————————————————
————————————————————
解析:采用排除法,选项A,B,C得到的出栈序列分别为1243,3241,1324。由1234得到1342的进出栈序列为:1进,1出,2进,3进,3出,4进,4出,2出,所以选D。
正确答案:D
————————————————————
————————————————————
解析:采用排除法,选项A,B,C得到的出栈序列分别为1243,3241,1324。由1234得到1342的进出栈序列为:1进,1出,2进,3进,3出,4进,4出,2出,所以选D。
正确答案:D
————————————————————
————————————————————
解析:对于A,可能的顺序是a入,a出,b入,b出,c入,c出,d入,d出。对于B,可能的顺序是a入,b入,c入,c出,b出,d入,d出,a出。对于D,可能的顺序是a入,a出,b入,c入,c出,b出,d 入,d 出。C没有对应的序列。
正确答案:C
————————————————————
————————————————————
解析:入栈序列是P1,P2,…,Pn。由于 P3= 1,即P1,P2,P3连续入栈后,第一个出栈元素是P3,说明P1, P2已经按序进栈,根据先进后出的特点可知,P2必定在P1之前出栈,而第二个出栈元素是2,而此时P1不是栈顶元素,因此P1的值不可能是2。
正确答案:C
————————————————————
————————————————————
解析:假设P1是1,进栈后立即出栈,P2是2,进栈后立即出栈,P3是3,进栈后立即出栈,得到的序列符合题意。假设P1是2,P2是1,P1、P2,依次进栈后全部出战,P3是3,进栈后立即出栈,得到的序列符合题意。因此,P1既可能是1,又可能是2。
正确答案:A
————————————————————
————————————————————
解析:
正确答案:C
————————————————————
————————————————————
解析:
正确答案:C
————————————————————
————————————————————
解析:上溢是指存储器满,还往里写;下溢是指存储器空,还往外读。为了解决上溢,可给栈分配很大的存储空间,但这样又会造成存储空间的浪费。共享栈的提出就是为了在解决上溢的基础上节省存储空间,将两个栈放在同一段更大的存储空间内,这样,当一个栈的元素增加时,可使用另一个栈的空闲空间,从而降低发生上溢的可能性。
正确答案:B
————————————————————
————————————————————
解析:
正确答案:A
————————————————————
————————————————————
解析:
正确答案:C
————————————————————
————————————————————
解析:选项A由a进,b进,c进,d进,d出,c出,e进,e出,b出,f进,f出,a出得到;选项B由a进,b进,c进,c出,b出,d进,d出,a出,e进,e出,f进,f出得到;选项C由a进,b进,b出,c进,c出,a出,d进,e进,e出,f进,f出,d出得到;选项D由a进,a出,b进,c进,d进,e进,f进,f出,e出,d出,c出,b出得到,但题意要求不允许连续3次退栈操作,选项D不符。
正确答案:D
————————————————————
————————————————————
解析:d第一个出栈,则c, b, a出栈的相对顺序是确定的,出栈顺序必为d_c_b_a_,e的顺序不定,在任意一个“_”上都有可能。
正确答案:B
————————————————————
————————————————————
解析:显然,3之后的4,5,…, n都是P可取的数(一直进栈直到该数入栈后马上出栈)。接下来分析1和2是否可取:P可以是3之前入栈的数(可能是1或2),也可以是4,当P=1时,P3可取2;当P=2时,P;可取1。因此,ps可能取除3外的所有数,个数为n-1。
正确答案:C
————————————————————
————————————————————
解析:
正确答案:D
————————————————————
————————————————————
解析:通过模拟出入栈操作,可以判断入栈序列in和出栈序列out是否合法。因此。己知in序列可以判断out序列是否为可能的出栈序列;已知out序列也可以判断in序列是否为可能的入栈序列,A和B错误。若每个元素入伐后立即出栈,则in序列和out序列相同,C错误。若所有元素都入栈后才依次出栈,则in序列和out序列互为倒序,D正确。
正确答案:D
标签:25,出栈,课后,top,答案,序列,习题,解析,正确 From: https://blog.csdn.net/2406_86301373/article/details/141032885