来测试一下你对数据结构中的栈和队列的了解有多少?

选择题

1.向一个栈顶指针为top的链栈中插入一个结点s,执行( )。

A.top.next=s;

B.s.next=top.next ;top.next=s;

C.s.next=top;top=s;

D.s.next=top; top=top.next ;

2.栈通常采用的两种存储结构为( )。

A.散列方式和索引方式

B.顺序存储结构和链式存储结构

C.链表存储结构和数组

D.线性存储结构和非线性存储结构

3.一个栈的入栈序列是a,b,c,d,e,则栈的输出序列不可能是( )。

A.e,d,c,b,a

B.d,e,c,b,a

C.d,c,e,a,b

D.a,b,c,d,e

4.一个顺序栈一且说明,其占用空间的大小( )。

A.已固定

B.可队改变

C.不能固定

D.动态变化

5.判断顺序栈( 最多结点数为m )为栈满的条件是( )。

A.top==0

B.top==m

C.top!=0

D.top!=m

6.在栈中存取数据的原则是( )。

A.先进先出

B.后进先出

C.后进后出

D.随意进出

7.经过队下栈运算后,x 的值是( )。InitStack(s);Push(s,a);Push(s,b);Pop(s,x);GetTop(s,x);

A.a

B.b

C.1

D.O

8.若已知一个栈的入栈序列是1,2, 3,…,n,其输出序列为P1,P2,…,Pn, 则Pi为( )。

A.n-i

B.I

C.n-i+1

D.不确定

9.一个队列的进队序列为1,2,3,4,则出队序列为( )。

A.1, 2, 3, 4

B.4, 3, 2,1

C.1, 4, 3, 2

D.3, 2, 4, 1

10.4 个结点进队序列为1,2,3,4,进行一次出队运算后,队头结点为( )。

A. 1

B. 2

C. 3

D. 4

11.若用单链表来表示队列,则应该选用( )。

A.带尾指针的非循环队列

B.带尾指针的循环队列

C.带头指针的非循环队列

D.带头指针的循环队列

12.循环队列为空队列的条件是( )。

A.Q.rear==Q.front

B.(Q.rear+1)%MaxSize==Q.front

C.Q.rear=0

D.Q.front=0

13.在一个链队中,假定front 和rear 分别为队首和队尾指针、则删除一个结点的操作为( )。

A.front=front.next

B.rear=rear.next

C.rear=front.next

D.front =rear.next

14.栈和队列的共同点是( )。

A.都是先进后出

B.都是先进先出

C.只允许在端点处插入和删除元素

D.没有共同点

15.插入和删除只能在表的一端进行的线性表,称为( )。

A.循环队列

B.栈

C.队列

D.循环栈

填空题

1.允许在线性表的一端进行插入和删除的线性表称为_________。

2.当栈空时再做出栈运算将产_______; 当栈满时再做进栈运算将产生_____。

3.带有头结点的单链表head 为空的条件是______。

4.设有一空栈,现有输入序列1, 2, 3, 4, 5, 经过push, push, pop,push,push后,输出序列是_____。

5.栈是一种具有_____特性的线性表。

判断題

( )1.栈是一种后进先出的线性表。

( )2.在n个元素进栈后,它们的出栈顺序和进栈顺序一定 正好相反。

( )3.栈是线性表的特例,是指元素先进后出。

( )4.用链式存储结构保存的线性表,称为链表。

( )5.顺序表与顺序栈没有区别,它们都是顺序存储结构。

( )6.队列的特点是先进先出。

( )7.将插入和删除限定在表的同一端进行的线性表是队外。

( )8.队列是一种对进队列、出队列操作的次序做了限制的线性表

( )9.栈和队列没有区别,都是受限的线性表。据的线性表

( )10.链栈与链队没有区别,都是用链式存储结构保存数据

原文发布于微信公众号 - java学习(javaxxf)

原文发表时间:2018-02-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏曾大稳的博客

栈(Stack源码分析)

本文所述是站在数据结构的角度。 栈可以通过链表和数组实现,先看通过数组实现的方式。

29030
来自专栏包子铺里聊IT

How to find the lowest common ancestor in a tree 最近公共祖先

[题目] 求二叉树的任意两个节点的最近公共祖先。 此题有多个扩展问题: 如果只查询一次,二叉树给出向上(parent)链接和不给向上链接时分别有什么解法,最佳空...

28440
来自专栏机器学习与自然语言处理

二叉树的遍历:先序中序后序遍历的递归与非递归实现及层序遍历

  对于一种数据结构而言,遍历是常见操作。二叉树是一种基本的数据结构,是一种每个节点的儿子数目都不多于2的树。二叉树的节点声明如下: 1 typedef str...

38160
来自专栏Android知识点总结

Java总结之容器家族--Collection

Set的操作比较少,基本上也就是Collection传下来的方法 Set一般基于Map来实现:HashSet、LinkedHashSet、TreeSet的特性...

18820
来自专栏LuckQI

学习Java基础知识,打通面试关八—Map系列学习

10820
来自专栏恰童鞋骚年

数据结构基础温故-4.树与二叉树(中)

在上一篇中,我们了解了树的基本概念以及二叉树的基本特点和代码实现,还用递归的方式对二叉树的三种遍历算法进行了代码实现。但是,由于递归需要系统堆栈,所以空间消耗要...

15310
来自专栏Android机动车

Java 基础(五)——集合源码解析 Set

前面我们学了 List 集合。我们知道 List 是一个有序的集合,可以根据元素的整数索引访问元素,并且允许重复。

10810
来自专栏Java3y

TreeMap就这么简单【源码剖析】

24650
来自专栏mini188

多用多学之Java中的Set,List,Map

        很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了。ArrayList是用于实现动态数组...

22650
来自专栏编程之旅

数据结构——二叉查找树(C语言)

二叉查找树,也称作二叉搜索树,有序二叉树,排序二叉树,而当一棵空树或者具有下列性质的二叉树,就可以被定义为二叉查找树:

28140

扫码关注云+社区

领取腾讯云代金券