算法与数据结构习题

发布 2021-05-02 17:42:28 阅读 4530

习题3一、单项选择题。

1. 将一棵有100个结点的完全二叉树从根开始,每层从左到右依次对结点进行编号,根结点编号为1,则编号最大的非叶子结点的编号为( )

a.48b.49

c.50d.51

2.在待排序的元素序列基本有序的前提下,效率最高的排序算法是( )

a、选择排序。

b、插入排序。

c、快速排序。

d、归并排序。

3. 一个具有n个顶点的连通无向图的生成树中有( )条边。

a、n-1b、n

c、n/2d、n+1

二、填空题。

1. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有___个前驱结点;叶子结点没有___结点。

2. 若按层次顺序将一棵有n个结点的完全二叉树的所有结点编号为1到n,那么,当i为___且不等于1时,结点i的左兄弟是结点i-1,否则结点i没有左兄弟;当i<=(n-1)/2时,结点i的右子女是___否则结点i没有右子女。

3. 在单链表中,除了首元结点外,任一结点的存储位置由指示。

4. 将下列表达式的复杂度由小到大重新排序后的正确顺序为。

a、2nb、n

c、n5d、10000

e、n*log2n

三、判断题。

1.二叉树中所有结点个数是2k-1-1,其中k是树的深度。(

2.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。(

3. 链表的物理存储结构具有同链表一样的顺序。(

4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。(

四、简答题。

1. 编写一个算法,对于输入的十进制非负整数,将它的二进制表示打印的算法写出来。

2.写一个递归算法来计算并返回链表的长度,并在程序中做出相应的文字说明。

3.给出栈的最常用的5种操作,并说明它们的功能。

4. 什么是内排序?什么样的排序算法是稳定的?快速排序稳定吗?为什么?

5. 什么是二叉树的高度?什么是完全二叉树?什么是满二叉树?

习题答案 一、单项选择题。

二、填空题。

三、判断题。

四、简答题。

1. void print_bin(int dec_number){

*将十进制非负整数转化为二进制数打印出来*/

pseqstack pastack;

int temp =dec_number;

if (temp<0){

printf(“error!”);

return;

pastack= createmptystack()_seq();建立一个空栈*/

if(pastack = null)return;

while(temp>0){

push_seq(pastack,temp%2);

temp/=2;

while(!isemptystack_seq(pastack)){

printf(“%d”,top_seq(pastack));

pop_seq(pastack);

free(pastack);

2. 答: int length(linklist llist){ 计算单链表list的长度*/

if(llist = null)

return();

return1+length(llist->link);

3. 答:1) void push(st,x) 将元素x插入栈st的顶端。

2) void pop(st) 从栈st顶端删除一个元素。

3) datatype top(st) 读栈st顶端的元素。

4) int isempty(st) 判断栈st是否为空栈。

5) pstack createmptystack() 创建一个空栈。

4. 答:1)排序过程中,数据全放在内存中处理的排序方法称为“内排序”。

2)若经过排序后,文件中排序码相等的记录之间的相对次序保持不变,则此排序算法是稳定的,否则为不稳定。

3)快速排序是不稳定的,因为在每次分区交换时,可能已经破坏了其他排序码相同的记录的顺序。

5. 答:1)规定根的层数为0,其余结点的层数等于其父结点的层数加1.二叉树中结点的最大层数称为二叉树的高度。

2)如果一棵二叉树至多只有最下面的两层结点度数可以小于2,并且最下面一层的结点都集中在该层最左边的若干位置上,则此二叉树称为完全二叉树。

3)如果一棵二叉树的任何结点或者是树叶,或有两棵非空子树,则此二叉树称为满二叉树。

算法与数据结构习题

一 单项选择题。1 算法的时间复杂度的表示方法是 a 实现算法的程序在指定机器上执行的时间。b 标准程序在机器上的执行时间。c 基本操作重复次数,即问题规模n的某个函数。d 与刻画基本操作重复次数的函数同阶无穷大的函数f n 2 在一个双向链表中,假设结点的域分别为left,right,以及data...

算法与数据结构习题

6 页共 8 页。一 单项选择题。1.在数组a8 10中,行列下标从0开始,每一个数组元素占用3个字节存储,所有数据元素相继存放在一个地址连续的存储空间中,则存放该数组至少需要的字节数是 a 6 页共 8 页。算法与数据结构 习题2 一 单项选择题。1.在数组a8 10中,行列下标从0开始,每一个数...

算法与数据结构习题

一 单项选择题。1.在数组a8 10中,行列下标从0开始,每一个数组元素占用3个字节存储,所有数据元素相继存放在一个地址连续的存储空间中,则存放该数组至少需要的字节数是 a 240b 100 c 80d 270 2.如果把由树转换得到的二叉树叫做这棵树所对应的二叉树,则下面结论正确的是 a 等同于该...