《算法与数据结构》习题1
一、单项选择题
1. 数据结构从逻辑上分为()。
A.动态结构和静态结构
B.内部结构和外部结构
C.紧凑结构和非紧凑结构
D.线性结构和非线性结构
2. 栈和队列的共同点是()。
A.都是先进后出
B.都是后进先出
C.只允许在端点处插入和删除元素
D.没有共同点
3.若按从左到右的顺序读入已知序列a、b、c、d、e、f、g中的元素,然后结合栈的操作,能得到下列序列中的哪些序列?()
A.decfbga
B.fegdacb
C.efdgbca
D.dcbefag
4. 在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点
s,则执行()。
A.s→link=p→link;p→link =s;
B.p→link =s;s→link=q;
C.p→link=s→link;s→link =p;
D.q→link =s;s→link=p;
5.算法的计算量的大小称为计算的()。
A.效率
B. 复杂性
C. 现实性
D. 难度
6. 一个算法应该是()。
A.程序
B.问题求解步骤的描述
C.要满足五个基本特性
D.A和C
7. 从逻辑上可以把数据结构分为()两大类。
A.动态结构、静态结构
B.顺序结构、链式结构
C.线性结构、非线性结构
D.初等结构、构造型结构
8. 以下数据结构中,哪一个是线性结构?()
A.广义表
B. 二叉树
C. 稀疏矩阵
D. 串
二、多项选择题
1. 以下说法正确的是()。
A. 二叉树的特点是每个结点至多只有两棵子树
B. 二叉树的子树无左右之分
C. 二叉树只能进行链式存储
D. 树的结点包含一个数据元素及若干指向其子树的分支2.在数组上能做的操作有()。
A.插入
B.删除
C.取值操作
D.赋值操作
3. 图的应用算法有()。
A. 克鲁斯卡尔算法
B. 哈弗曼算法
C. 迪杰斯特拉算法
D. 拓扑排序算法
4. 计算机算法必须具备()等特性。
A. 可行性、确定性
B. 可行性、可移植性
C. 输入、输出
D. 有穷性
E. 易读性
F. 稳定性
数据结构与算法第二版课后题答案三、填空题
1. 一个算法的效率可分为效率和效率。
2. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动个元素。
3. 栈只能在插入和删除元素;对于队列只能在插入和删除元素。
4. 一棵具有257个结点的完全二叉树,它的深度为。
四、判断题
1. 链表的每个结点中都恰好包含一个指针。()
2. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂
类型。()
3. 数和二叉树都是分支结构。()
4. 优先队列是一种给每个元素增加了优先级的队列,它具有队列的基本特性。()
5. 数据元素是数据的最小单位。()
6. 记录是数据处理的最小单位。()
7. 数据的逻辑结构是指数据的各数据项之间的逻辑关系。()
五、简答题
1.能否讲二叉树是一种特殊的树?为什么?
2. 在C语言中字符串可以用字符指针来表示。字符串的长度隐含在字符指针所指的字符数组中,通过特殊的字符‘\0\’判定。写一个递归算法,以字符指针为参数,在屏幕上打印出它反转后得到的字符串。
3. 算法与程序有什么区别?
4. 试写出如图所示的二叉树分别按先序、中序、后序遍历时得到的结点序列。
5. 什么是网络的最小生成树?
6. 已知两个串为S1=“bc cad cabcadf”, S2=”abc”,试求两个串的长度,并
判断S2串是否是S1串的子串;如果是,请指出S2在S1中的位置。