1.某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作,若元素a,b,c,d,e依次入队列后,再进行出队操作,则不可能得到的顺序是( C )。
A. bacde B. dbace C. dbcae D. ecbad
a选项:b a c d e☞左入a,右入b,左入c,左入d,左入e。出队端为右端(或者整个完全相反也可以。)
b选项:d b a c e☞左入a,右入b,左入c,右入d,左入e。出队端为右端(或者整个完全相反也可以。)
d选项:e c b a d☞左入a,左入b,左入c,右入d,左入e。出队端为左端(或者整个完全相反也可以。
但是C选项中出队顺序是d,b,c,a,e从左出队,从左右入队,那么a入右,b入左,c不可能在a和b的中间,因此C选项的出队顺序是错误的 ,不管怎样ab是挨在一起出队的
1、栈的特点是( 后进先出 ),队列的特点是( 先进先出 )。
2、线性表、栈和队列都是( 线性 )结构,线性表可以在( 任意位置 )
位置插入和删除元素,栈只能在( 表尾 )插入和删除元素,
队列只能在( 队尾 )插入元素和( 队头 )删除元素。
3、设栈 S 和队列 Q 的初始状态皆为空,元素a1, a2, a3, a4, a5和 a6 依次通过一个栈,一个元素出栈后即进入队列 Q,若6 个元素出队列的顺序是 a3, a5, a4, a6, a2, a1 则栈 S 至少应该容纳 ( B ) 个元素。
(A)3 (B)4 (C)5 (D)6
4、若队列的入队序列是 1, 2, 3, 4,则出队序列是(B)。
(A)4,3,2,1(B)1,2,3,4(C)1,4,3,2(D)3,2,4,1
课堂练习
1、循环队列用数组 A[0, m-1] 存放其元素值,已知其头尾指针分别是 front 和rear ,则当前队列中的元素个数是(A)。
- (rear-front+m)%m (B) rear-front+1
- rear-front-1 (D) rear-front
rear尾指针始终指向队列的下一位置,每当插入元素师尾指针加1,删除队列的头元素时,头指针曾一,如果不是循环对列当前队列中的元素个数是rear-front;循环队列就像始终一样比如现在front指向6点,rear指向12点,现在元素个数是6个,当再插入时rear就指向了1点当前元素个数就是((1-6)+12)%12=7还不明白就看看有模运算
2、以数组 Q[0… m-1] 存放循环队列中的元素,变量 rear和 qulen 分别指示循环队列中队尾元素的实际位置和当前队列中元素的个数,队列第一个元素的实际位置是(C)。
(A) 1+rear-qulen (B) rear-qulen+m
(C) m-qulen (D) (1+rear-qulen+m) % m