挑战你的数据结构技能:复习题来袭【3】

chap3 练习1

. 单选题

1. (单选题)栈和队列具有相同的()

  • A. 抽象数据类型
  • B. 逻辑结构
  • C. 存储结构
  • D. 运算

答案: B:逻辑结构

答案分析:逻辑结构都属于线性结构,只是它们对数据的运算不同。

2. (单选题)栈是()

  • A. 顺序存储的线性结构
  • B. 链式存储的非线性结构
  • C. 限制存取点的线性结构
  • D. 限制存储点的非线性结构

答案: C:限制存取点的线性结构

答案分析:首先是线性结构,其次按存储结构不同可分为顺序栈和链栈

3. (单选题)()不是栈的基本操作

  • A. 删出栈顶元素
  • B. 删除栈底元素
  • C. 判断栈是否为空
  • D. 将栈置为空栈

答案: B:删除栈底元素;

答案分析:栈先进后出

A. 删出栈顶元素(出栈操作)

C. 判断栈是否为空(检查栈是否为空)

D. 将栈置为空栈(清空栈)

但是,删除栈底元素并不是栈的基本操作,因为栈只能对栈顶进行操作,即只能删除栈顶元素。

4. (单选题)假定利用数组a[n]顺序存储一个栈,用top表示栈顶指针,用top==-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作为(   )

  • A. a[--top]=x
  • B. a[top--]=x
  • C. a[++top]=x
  • D. a[top++]=x

答案: C:a[++top]=x;

答案分析:在数组实现的栈中,top 表示栈顶元素的索引。

当元素 x 进栈时,需要先将 top 加 1(即 ++top),然后将 x 存储在数组的该位置上(即 a[++top] = x)。

这样,top 就指向新的栈顶位置,而 x 也成功地进栈了。

5. (单选题)

设有一个空栈,栈顶指针为1000H,每个元素需要一个存储单元,执行pushpushpoppushpoppushpoppush操作后,栈顶指针的值为(   )

  • A. 1002H
  • B. 1003H
  • C. 1004H
  • D. 1005H

答案: A:1002H;

答案分析:每个元素需要1个存储单元,每入栈(push)一次top+1,每出栈(pop)一次top-1,指针top的值加来减去,得1002H。

6. (单选题)

和顺序栈相比,链栈有一个比较明显的优势,即(

  • A. 通常不会出现栈满的情况
  • B. 通常不会出现栈空的情况
  • C. 插入操作更容易实现
  • D. 删出操作更容易实现

答案:A.通常不会出现栈满的情况

答案分析:顺序栈采用数组存储,数组的大小固定,不能动态分配大小

链表可以动态地分配存储空间

7. (单选题)设链表不带头结点且所有操作均在表头进行,则下列最不适合作为链栈的是( 

  • A. 只有表头结点指针,没有表尾指针的双向循环链表
  • B. 只有表尾节点指针,没有表头指针的双向循环链表
  • C. 只有表头指针,没有表尾指针的单向循环链表
  • D. 只有表尾结点指针,没有表头指针的单向循环链表。

答案:C.只有表头指针,没有表尾指针的单向循环链表

答案分析:对于双向循环链表,不管是表头指针还是表尾指针,都方便在表头做插入或删除操作。

单循环链表通过尾指针可以很方便地找到表头结点,但通过头指针找尾节点需要遍历一次链表。

8. (单选题)向一个栈顶指针为top的链栈中插入一个x结点,则执行(

  • A. top-->next=x
  • B. x->next=top->next;top->next=x
  • C. x->next=top;top=x
  • D. x->next=top;top=top->next

答案:C:x->next=top;top=x

答案分析:

链栈的插入操作需要将新节点 x 插入到栈顶,并更新栈顶指针 top 使其指向新节点 x。具体步骤如下:

  1. 设置新节点 xnext 指针指向当前的栈顶节点,即 x->next = top
  2. 更新栈顶指针 top 使其指向新节点 x,即 top = x

这样,x 就成为了新的栈顶节点。

9. (单选题)链栈执行Pop操作,并将出栈的元素存在x中,应该执行(

  • A. x=toptop=top->next
  • B. x=top->data
  • C. top=top->next;x=top->data
  • D. x=top->data;top=top->next

答案:D:x=top->data;top=top->next

答案分析:

Pop 操作的步骤如下:

  1. 取得当前栈顶节点的数据,即 x = top->data
  2. 更新栈顶指针 top,使其指向原栈顶节点的下一个节点,即 top = top->next

这样,出栈操作就完成了,同时 x 中存储了出栈的元素。

10. (单选题)

经过以下栈的操作后,变量x的值为( 

  • A. a
  • B. b
  • C. NULL
  • D. FALSE

答案:A:a

答案分析:

逐步分析变量 x 的值:

  1. Initstack(st); 初始化栈 st
  2. Push(st,a); 将元素 a 压入栈中。
  3. Push(st,b); 将元素 b 压入栈中。此时栈顶元素为 b
  4. Pop(st,x); 将栈顶元素弹出,并赋值给变量 x。因此,x 的值为 b
  5. Top(st,x); 再次将栈顶元素赋值给 x。由于 b 已经被弹出,现在栈顶元素是 a

11. (单选题)3个不同元素一次进栈,能得到( )种不同的出栈序列

  • A. 4
  • B. 5
  • C. 6
  • D. 7

答案:B:5

答案分析:

可以通过列举所有可能的出栈序列来验证这个结论。假设元素为 A、B、C,按照它们的入栈顺序为:

  1. A B C
  2. A C B
  3. B A C
  4. B C A
  5. C B A

12. (单选题)abcdef以所给的次序进栈,若进栈操作时,允许出栈操作,则下面得不到的序列为( 

  • A. fedcba
  • B. bcafed
  • C. dcefba
  • D. cabdef

答案:D:cabdef

答案分析:

模拟栈的操作:假设元素以 a, b, c, d, e, f 的顺序进栈,我们检查每个选项的可能性:

  1. fedcba:

    • 进栈 a, b, c, d, e, f。
    • 按顺序出栈 f, e, d, c, b, a。
    • 这是可能的序列。
  2. bcafed:

    • 进栈 a, b。
    • 出栈 b。
    • 进栈 c。
    • 出栈 c。
    • 出栈 a。
    • 进栈 d, e, f。
    • 按顺序出栈 f, e, d。
    • 这是可能的序列。
  3. dcefba:

    • 进栈 a, b, c, d。
    • 出栈 d。
    • 进栈 e。
    • 出栈 e。
    • 进栈 f。
    • 出栈 f。
    • 出栈 c, b, a。
    • 这是可能的序列。
  4. cabdef:

    • 进栈 a。
    • 进栈 b。
    • 进栈 c。
    • 出栈 c。
    • 出栈 b。
    • 出栈 a。
    • 进栈 d, e, f。
    • 按顺序出栈 f, e, d。

这是 不可能的 序列,因为 c 出栈之前,b 和 a 必须都在栈中,而序列要求 b 先出栈。

13. (单选题)S表示进栈操作,用X表示出栈操作,若元素的进栈顺序是1234,为了得到1342的出栈顺序,相应的SX的操作序列为( 

  • A. SXSXSSXX
  • B. SSSXXSXX
  • C. SXSSXXSX
  • D. SXSSXSXX

答案:D:SXSSXSXX

答案分析:

为了得到出栈顺序 1342,相应的 S 和 X 的操作序列应该是:

  1. 进栈 1(S)
  2. 出栈 1(X)
  3. 进栈 2(S)
  4. 进栈 3(S)
  5. 出栈 3(X)
  6. 进栈 4(S)
  7. 出栈 4(X)
  8. 出栈 2(X)

14. (单选题)

若元素abcdef一次进栈,允许进栈、退栈操作交替进行,但不允许连续3次进行退栈操作,不可能得到的出栈序列是( 

  • A. dcefa
  • B. cbdaef
  • C. bcaefd
  • D. afedcb

答案:D:afedcb

答案分析:

模拟栈的操作并考虑约束条件:

A. dcefa

  1. 进栈 a (S)
  2. 进栈 b (S)
  3. 进栈 c (S)
  4. 进栈 d (S)
  5. 出栈 d (X)
  6. 进栈 e (S)
  7. 出栈 c (X)
  8. 出栈 e (X)
  9. 进栈 f (S)
  10. 出栈 f (X)
  11. 出栈 a (X)

这是可能的,因为没有连续3次退栈操作。

B. cbdaef

  1. 进栈 a (S)
  2. 进栈 b (S)
  3. 进栈 c (S)
  4. 出栈 c (X)
  5. 出栈 b (X)
  6. 进栈 d (S)
  7. 出栈 d (X)
  8. 进栈 e (S)
  9. 出栈 a (X)
  10. 进栈 f (S)
  11. 出栈 e (X)
  12. 出栈 f (X)

这是可能的,因为没有连续3次退栈操作。

C. bcaefd

  1. 进栈 a (S)
  2. 进栈 b (S)
  3. 出栈 b (X)
  4. 进栈 c (S)
  5. 出栈 c (X)
  6. 进栈 d (S)
  7. 进栈 e (S)
  8. 出栈 a (X)
  9. 出栈 e (X)
  10. 出栈 f (X)

这是可能的,因为没有连续3次退栈操作。

D. afedcb

  1. 进栈 a (S)
  2. 进栈 b (S)
  3. 进栈 c (S)
  4. 进栈 d (S)
  5. 进栈 e (S)
  6. 进栈 f (S)
  7. 出栈 f (X)
  8. 出栈 e (X)
  9. 出栈 d (X)

此时无法继续,因为下一步需要再次退栈 c,这将导致连续4次退栈操作。此序列违反了不允许连续3次退栈操作的规则。

15. (单选题)

若栈S1中保存整数,栈S2中保存运算符,函数F()一次执行下述各步操作:

  • A. -15
  • B. 15
  • C. -20
  • D. 20

答案:B:15

答案分析:

函数F()的操作步骤可能包括从栈S1中弹出两个操作数,从栈S2中弹出一个运算符,执行运算,并将结果压回栈S1中。如果栈S1中的操作数依次是5, 8, 3, 2(2在栈顶),而栈S2中的运算符依次是*, -, +(+在栈顶),那么执行三次F()函数后,栈S1栈顶的值应该是 15

这是通过以下步骤计算得出的:

  1. 第一次调用F():弹出2和3,运算符是+,执行3+2得到5,压入栈S1。
  2. 第二次调用F():弹出5和8,运算符是-,执行8-5得到3,压入栈S1。
  3. 第三次调用F():弹出3和5,运算符是*,执行5*3得到15,压入栈S1。

16. (单选题)设栈S和队列Q的初始状态均为空,元素abcdefg一次进入栈S,若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是bdcfeag,则栈S的容量至少为(

  • A. 1
  • B. 2
  • C. 3
  • D. 4

答案:C:3

答案分析:

  1. 依次将元素 a, b, c 压入栈中,栈此时的状态:[a, b, c]
  2. 弹出栈顶元素 c, 栈状态:[a, b]
  3. 压入元素 d, 栈状态:[a, b, d]
  4. 弹出栈顶元素 d, 栈状态:[a, b]
  5. 压入元素 e, 栈状态:[a, b, e]
  6. 弹出栈顶元素 e, 栈状态:[a, b]
  7. 压入元素 f, 栈状态:[a, b, f]
  8. 弹出栈顶元素 f, 栈状态:[a, b]
  9. 弹出栈顶元素 b, 栈状态:[a]
  10. 弹出栈顶元素 a, 栈状态:[]

为了使这个顺序成立,我们分析最大需要保持的元素数:

  • 一次将三个元素 (a, b, c) 存入栈,容量需要至少为 3。
  • 之后每次有一个新的元素压入和出栈,栈的容量维持为3。

通过这个过程,我们确定栈 SSS 的容量至少为 3。

17. (单选题)若一个栈的输入序列是123......n,输出序列的第一个元素是n,则第i个输出元素是(

  • A. 不确定
  • B. n-i
  • C.n-i-1
  • D. n-i+1

答案:D:n-i+1

答案分析:

根据栈的后进先出(LIFO)原则,如果一个栈的输入序列是1,2,3,…,n,且输出序列的第一个元素是n,那么可以推断出,除了n之外的所有元素都已经按顺序进入了栈中。因此,输出序列将按照n, n-1, n-2, …, 3, 2, 1的顺序进行,如果第一个输出元素是n,那么第i个输出元素将是n减去i加1,即n-i+1。这个规律是因为每次输出都是从栈顶取出元素,而栈顶元素是最后进入的元素。例如,如果n是5且i是2,那么第二个输出元素将是5-2+1,即4。

18. (单选题)

一个栈的输入序列为123.......n,输出序列的第一个元素是i,则第j个输出元素是(

  • A. i-j-1
  • B. i-j
  • C. j-i+1
  • D. 不确定

答案:D:不确定

19. (单选题)

  • A. a,b,c,d
  • B. c,b,d,a
  • C. d,c,a,b
  • D. a,c,b,d

答案:C:d,c,a,b

答案分析:

如果某个元素先出栈,那么它后面出栈的元素必须是在它之前进栈的元素,并且这些元素应该是按照进栈的逆序出栈的。

分析一下每个选项:

  • A. a, b, c, d:这是可能的输出序列,因为所有元素都是按照进栈的顺序出栈的。
  • B. c, b, d, a:这也是可能的,因为 c 和 b 可以先出栈,然后 d 和 a 按照进栈的逆序出栈。
  • C. d, c, a, b:这是不可能的输出序列。因为一旦 d 出栈,c 也出栈了,那么 a 就不能在 b 之前出栈,因为 b 在 a 之前进栈。
  • D. a, c, b, d:这是可能的,因为 a 可以先出栈,然后 c, b, d 按照进栈的逆序出栈。

20. (单选题)

  • A. 可能是2
  • B. 一定是2
  • C. 不可能是2
  • D. 不可能是3

答案:C:不可能是2

答案分析:

因为P3=1,所以在1之前进栈的元素只能是2和3,而且3必须在2之前进栈。

因此,P1不能是2,因为那样的话2就会在3之前进栈,这与栈的后进先出原则相违背。

21. (单选题)

  • A. 24
  • B. 21
  • C. 43
  • D. 34

答案:C:43

答案分析:

逐个判断每个选项可能的入栈出栈顺序。

对于A,可能的顺序是1入,1出,2入,2出,3入;3出,4入,4出。

对于B,可能的顺序是1入,2入,3入,3出,2出,4入,4出,1出。

对于D,可能的顺序是1入,1出,2入,3入,3出,2出,4入,4出。

C没有对应的序列,因为当4在栈中时,意味着前面的所有元素(1,2,3)都已在栈中或曾经入过栈,此时若4第二个出栈,即栈中还有两个元素,且这两个元素是有序的(对应入栈顺序),只能为(1,2),(1,3),(2,3),若是序列(1,2),则3已在p1位置出栈,不可能再在p4位置出栈,若是(1,3)和(2,3)这种情况中的任意一种,则3一定是下一个出栈元素,即p3一定是3,所以p4不可能是3。

22. (单选题)
一个栈的入栈序列为123.......,n,出栈序列为P1,P2,P3...,Pn,若P2=3,则P3可能取值的个数是( 

  • A. n-3
  • B. n-2
  • C. n-1
  • D. 无法确定

答案:C:n-1

答案分析:

p3可能取3外的所有数,个数为n-1.

23. (单选题)

  • A. 4
  • B. 5
  • C. 3
  • D. 6

答案:C:3

答案分析:

在C语言中,标识符的命名规则是:

  1. 标识符必须以字母或下划线开头,不能以数字开头。
  2. 标识符只能包含字母、数字和下划线。
  3. 标识符区分大小写。

给定的字符序列“n1_”作为栈的输入,我们可以生成的有效C语言标识符序列有:

  • n1_
  • 1n_ (无效,因为不能以数字开头)
  • _n1
  • n_1
  • _1n (无效,因为不能以数字开头)

所以,有效的C语言标识符序列有3个。

24. (单选题)

  • A. top2-top1==1
  • B. top1-top2==1
  • C. top1==top2
  • D. 以上都不对

答案:A:top2-top1==1

答案分析:

在顺序共享栈中,两个栈共享一个数组空间,其中一个栈从数组的开始位置向后增长,另一个栈从数组的末尾向前增长。栈顶指针top1和top2分别表示这两个栈的栈顶位置。当第一个栈的栈顶指针top1的初值为-1,第二个栈顶指针top2的初值为n时,共享栈满的条件是两个栈顶指针相邻,即它们之间没有空间可以存放新的元素。正确的判断条件是:

  • A. top2-top1==1

这意味着当top2的位置比top1的位置大1时,两个栈顶指针相邻,没有更多空间可以用来存储元素,因此共享栈被认为是满的。

25. (单选题)采用共享栈的好处是( 

  • A. 减少存储时间,降低发生上溢的可能
  • B. 节省存储空间,降低发生上溢的可能
  • C. 减少存取时间,降低发生下溢的可能
  • D. 节省存储空间,降低发生下溢的可能

答案:B:节省存储空间,降低发生上溢的可能

答案分析:

上溢:存储器满,还往里写

下溢:存储器空,还往外读

chap3 练习2

. 单选题

1. (单选题) 栈和队列得主要区别在与 ()

  • A. 他们的逻辑结构不一样
  • B. 它们的存储结构不一样
  • C. 所包含的元素不一样
  • D. 插入、删除操作的限定不一样

答案:D

2. (单选题)
队列的先进先出特性是指( 

1最后插入队列中的元素总是最后被删除

2)当同时进行插入、删除操作时,总是插入操作优先

(3)每当有删除操作时,总要先做一次插入操作

4)每次从队列中删除的总是最早插入的元素

  • A. 1
  • B. 1)(4
  • C. 2)(3
  • D. 4

答案:B

3. (单选题) 允许对队列进行的操作有(

  • A. 对队列中的元素排序
  • B. 取出最近进队的元素
  • C. 在队列元素之间插入元素
  • D. 删除对头元素

答案:D

4. (单选题)
一个队列的入队顺序是1234,则出队的输出顺序是( 

  • A. 4321
  • B. 1234
  • C. 1432
  • D. 3241

答案:B

5. (单选题) 循环队列存储在数组A[0...n]中,入队时的操作为( 

  • A. rear=rear+1
  • B. rear=rear+1 mod n-1)
  • C. rear=rear+1 mod n
  • D. rear=rear+1 mod n+1)

答案:D

答案分析:

数组下表范围0~n,因此数组容量为n+1.循环队列中元素入队的操作是rear=(rear+1)mod maxsize

6. (单选题)

  • A. 5
  • B. 6
  • C. 16
  • D. 17

答案:C

答案分析:

循环队列的长度可以通过下面的公式计算:

队列长度=(rear−front+n)%n

其中,rear 是队尾指针的位置,front 是队头指针的前一个位置,n 是数组的大小。

在这个问题中,rear = 3front = 8,数组的大小 n = 21。将这些值代入公式中,我们可以计算出队列的长度:

队列长度=(3−8+21)%21

队列长度=(16)%21

队列长度=16

因此,该队列的长度为16。

7. (单选题)

  • A. 34    
  • B. 30
  • C. 50
  • D. 51

答案:B

答案分析:

在循环队列中,front 指向队列的第一个元素,而 rear 指向队列的最后一个元素的下一个位置。当从队列中删除一个元素时,front 会增加1(因为它指向的是队列的第一个元素的前一个位置)。当加入一个元素时,rear 会增加1。由于这是一个循环队列,所以这些操作都是模数组大小的。

给定的情况下,数组大小为6(A[0…5]),初始时 front=5 和 rear=1。删除一个元素后,front 变为 (5+1) mod 6 = 0。加入两个元素后,rear 变为 (1+2) mod 6 = 3

因此,删除一个元素并加入两个元素后,rear 和 front 的值分别为3和0。

8. (单选题)

已知循环队列存储在一维数组A[0...n-l]中,且队列非空时front rear分别指向队头元素和队尾元素。若初始时队列为空,且要求第一个进入队列的元素存储在A[0]处,则初始时frontrear的值分别是()。

  • A. 00
  • B. 0n-1
  • C. n-10
  • D. n-1n-1

答案:B

答案分析:

第一个进入队列的元素存储在A[0]处,此时front和rear值都为0。入队时因为要执行(rear+1)%n操作,所以若入队后指针指向0,则rear初值为n-1,而因为第一个元素在A[0]中,插入操作只改变rear指针,所以front为0不变。

9. (单选题)

假设一个循环队列Q [MaxSize]的队头指针为front,队尾指针为rear, 队列的最大容量为MaxSize,除此之外,该队列再没有其他数据成员,则判断该队的列满条件是()。

  • A. Q.front==Q.rear
  • B. Q.front+Q.rear>=MaxSize
  • C. Q.front==(Q.rear+1)%MaxSize
  • D. Q.rear==(Q.front+1)%MaxSize

答案:C

10. (单选题)

循环队列放在一维数组A[0...M-l]中,endl指向队头元素,end2向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳 M-1个元素,。初始时为空。下列判断队空和队满的条件中,正确的是  ()

  • A.队空:endl==end2;   

        队满 endl== (end2 + l) mod M

  • B.队空:endl==end2;

        队满:end2== (endl + 1) mod (M-l)

  • C.队空:end2= (endl + 1) mod M

        队满:endl= (end2 + l) mod M

  • D.队空:endl== (end2 + l) mod M

        队满:end2== (endl + 1) mod (M-l)

答案:A

11. (单选题)

最适合用做队列的链表是()

  • A.带队首指针和队尾指针的循环单链表
  • B. 带队首指针和队尾指针的非循环单链表
  • C. 只带队首指针的非循环单链表
  • D. 只带队首指针的循环单链表

答案:B

12. (单选题)

最不适合用做链式队列的链表是()

  • A. 只带队首指针的非循环双链表
  • B. 只带队首指针的循环双链表
  • C. 只带队尾指针的循环双链表
  • D. 只带队尾指针的循环单链表

答案:A

13. (单选题)

用单链表实现队列时,队头设在链表的(  )位置

  • A. 链头
  • B. 链尾
  • C. 链中
  • D. 以上都可以

答案:A

14. (单选题)

用链式存储方式的队列进行删除操作时需要()

  • A.仅修改头指针
  • B.仅修改尾指针
  • C.头尾指针都要修改
  • D.头尾指针可能都要修改

答案:D

15. (单选题)

在一个链队列中,假设队头指针为front,队尾指针为rear, x所指向的 元素需要入队,则需要执行的操作为()。

  • A.  front=x, front=front->next
  • B.  x->next=front->next, front=x
  • C. rear->next=x, rear=x
  • D.  rear->next=x, x->next=null, rear=x

答案:D

16. (单选题)

假设循环单链表表示的队列长度为n, 队头固定在链表表尾,若只设头指针,则进队操作的时间复杂度为(  )

  • A. O(n)
  • B. 0(1)
  • C. 0(n2)
  • D.  O(nlog2n)

答案:A

17. (单选题)

若以1,2, 3, 4作为双端队列的输入序列,则既不能由输入受限的双端队列得到,又不能 由输出受限的双端队列得到的输出序列是()

  • A.1,2,3,4
  • B.4132
  • C. 4231
  • D. 4213

答案:C

答案分析:

A.1,2,3,4依次左入,依次左出

B.左出,右出,左出,左出

D.左入,左入,右入,左入,依次左出

18. (单选题)

某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。 若元素abcde 依次入此队列后再进行出队操作,则不可能得到的出队序列是()

  • A. b,a,c,d,e
  • B. d,b,a,c,e
  • C. d,b,c,a,e
  • D. e,c,b,a,d

答案:B

答案分析:

输出受限的双端队列。

A操作:a左入(或右入)、6左入、c右入、d右入、e右入。

B操作:a左入(或右入)、6左入、c右入、d左入、e右入。

D操作:a左入(或右入)、b左入、c左入、d右入、e左入。

C操作:a左入(或右入)、6右入、因a未出,此时只能进队,c怎么进都不可能在b和a之间。
【另解】初始时队列为空,第1个元素a左入(或右入)后,第2个元素6无论是左入还是右入都必与a相邻,而选项C中a与b不相邻,不合题意。

19. (单选题)

现有队列Q与栈S,初始时Q中的元素依次是1, 2, 3, 4, 5, 6 ( 1在队头),S为空。若仅允许下列3种操作:①出队并输出出队元素;②出队并将出队元 素入栈;③出栈并输出出栈元素,则不能得到的输出序列是()。

  • A. 1,2, 5, 6, 4, 3 
  • B. 2, 3, 4, 5, 6, 1
  • C. 3, 4, 5, 6, 1,2
  • D. 6, 5, 4, 3, 2,1

答案:C

答案分析:

A:11221133

B:2111113

D:22222133333

C:首先输出3,说明1和2必须先依次入栈,此后2肯定比1先输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何处理逻辑设计中的时钟域

1.什么是时钟域 2.PLL对时钟域管理 不管是否需要变频变相,在FPGA内部将外部输入时钟从专用时钟引脚扇入后先做PLL处理。如何调用pll,见另一篇文章。 约束输入时钟 creat_clock -period 10 -waveform {0 5} [get_ports {sys_clk}] 3.单bit信号跨时钟…

黏土风格绘画神器Image to Clay Style Online,可免费生成50000张

🧙‍♂️ 诸位好,吾乃斜杠君,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &#…

[pdf,epub]《软件方法》2024版电子书共290页(202405更新)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 已上传本账号CSDN资源。 或者到以下链接下载: http://www.umlchina.com/url/softmeth2024.html,或点击“阅读原文”。 如果需要提取码:umlc 已排…

mysql高级篇学习(数据表的设计方法,索引优化)

使用docker 安装 mysql 安装 docker # yum 包更新到最新 yum update# 卸载旧的 docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine # 安装 gcc 环境 yum -y install…

库卡机器人保养服务包,教你保养技术

为了确保机器人的持续稳定运行和延长使用寿命,正确的库卡机器人保养和KUKA机械手维修至关重要。 KUKA机器人保养工作对于保障其稳定运行和延长使用寿命具有重要意义。通过了解子锐机器人提供的库卡机械手保养服务包,可以确保机器人在良好的状态下为生产线…

英语新概念2-回译法-lesson16

第一次回译 if you ___ your car on a wrong place, the traffic police man will find you quickly. If he do not give you the ticket,you are lucky.However,the ___ not all like this,The police man is __ sometimes.I had a holiday in Sweden, I found a ___ in my c…

深入探索:中文字符的编码与转移字符的奥秘

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:探索字符编码的世界 二、字符编码基础:理解ASCII与Unicode…

2023idea没有VCS首次提交代码到Git

1、setting 2、vcs------>create git repository 3、右键项目----->Git------>add 4、右键项目------>git------>commit Directory 之后就会显示这个页面(下面写你提交的信息,就是你修改了什么) 点击commit,提交 5、Git--------->push 6、选择…

IDEA出现javax.servlet.http包错误解决方法

问题原因&#xff1a;缺少对应的jar包&#xff0c;其实tomcat服务器自带与HTTP一些相关的Jar包&#xff0c;没有导入进去。 解决方案1&#xff1a; 导入对应jar包 <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</…

图片如何去水印?ps去除图片上的水印应该怎么操作?教会你!

图片去水印是一个常见的需求&#xff0c;尤其在使用他人图片时&#xff0c;为避免版权问题&#xff0c;去除水印是很有必要的。Photoshop&#xff08;PS&#xff09;作为一款专业的图片处理软件&#xff0c;提供了多种去除水印的方法。以下是使用PS去除图片水印的几种详细步骤&…

SNAT和DNAT策略

1.SNAT策略及应用 SNAT应用环境&#xff1a;局域网主机共享单个公网IP地址接入Internet&#xff08;私有不能在Internet中被正常路由&#xff09; SNAT原理&#xff1a; 修改数据包的源地址。 SNAT转换前提条件&#xff1a; 局域网各主机已正确设置IP地址、子网掩码、默认网…

记录使用 Vue3 过程中的一些技术点

1、自定义组件&#xff0c;并使用 v-model 进行数据双向绑定。 简述&#xff1a; 自定义组件使用 v-model 进行传参时&#xff0c;遵循 Vue 3 的 v-model 机制。在 Vue 3 中&#xff0c;v-model 默认使用了 modelValue 作为 prop 名称&#xff0c;以及 update:modelValue 作为…

【十一】图解SpringBoot AOP实现原理

图解Spring AOP实现原理 概述 研究了一段时间spring原理&#xff0c;对spring的ioc和aop有了更深刻的理解&#xff0c;最大的体会就是spring的核心就是ioc和aop&#xff0c;spring的功能都是基于这两大特性延展开的&#xff0c;spring ioc管理了Java bean&#xff0c;spring ao…

怎么把3d模型旋转加复制---模大狮

在进行3D建模和设计过程中&#xff0c;经常需要对3D模型进行旋转和复制操作&#xff0c;这是设计过程中的常见需求。本文将介绍如何对3D模型进行旋转和复制&#xff0c;帮助读者更好地掌握这一重要的操作技巧。 一、旋转3D模型 在大多数3D建模软件中&#xff0c;旋转3D模型通常…

dp + 计数,1954D - Colored Balls

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1954D - Codeforces 二、解题报告 1、思路分析 本题前置题目&#xff1a; 1953. 你可以工作的最大周数 通过前置题目可以知道如何计算两两不同数对序列的最大长度 我们记最大数量为ma&#xf…

大模型时代的具身智能系列专题(三)

清华高阳团队 高阳为清华叉院助理教授&#xff0c;本科毕业于清华大学计算机系&#xff0c;博士毕业于UC Berkeley。博士导师是Vision领域的大牛Trevor Darrell&#xff0c;读博期间和Sergey Levine合作开始强化学习方面的探索&#xff0c;博后跟随Pieter Abbeel做强化学习&am…

Vue的学习 —— <Echarts组件库技术应用>

目录 前言 正文 一、ECharts技术简介 二、Vue3集成Echarts 1、安装Echarts 2、引入方式 三、Echarts基础篇 1、图表容器及大小 2、样式 2.1 颜色主题 3、坐标轴 5、数据集 5.1 在series中设置数据集 5.2 在dataset中设置数据集 四、常用图表实操 1、柱状图 2、…

常见API(JDK7时间、JDK8时间、包装类、综合练习)

一、JDK7时间——Date 1、事件相关知识点 2、Date时间类 Data类是一个JDK写好的Javabean类&#xff0c;用来描述时间&#xff0c;精确到毫秒。 利用空参构造创建的对象&#xff0c;默认表示系统当前时间。 利用有参构造创建的对象&#xff0c;表示指定的时间。 练习——时间计…

刷题记录5.22-5.27

文章目录 刷题记录5.22-5.2717.电话号码的字母组合78.子集131.分割回文串77.组合22.括号生成198.打家劫舍---从递归到记忆化搜索再到递推动态规划背包搜索模板494.目标和322.零钱兑换牛客小白月赛---数字合并线性DP1143.最长公共子序列72.编辑距离300.最长递增子序列状态机DP12…

ssh远程连接的相关配置

连接同一个局域网下&#xff1a; 正好这里来理解一下计算机网络配置中的ip地址配置细节&#xff0c; inet 172.20.10.13: 这是主机的IP地址&#xff0c;用于在网络中唯一标识一台设备。在这个例子中&#xff0c;IP地址是172.20.10.13。 netmask 255.255.255.240: 这是子网掩码…